dataesr/scientific-paragraphs-categorization huggingface dataset:
Although functional, this approach is not trivial, and requires multiple steps to be implemented. Developers have to create a project in Firebase, to define the access rights for the database, and add an "application" to the project (here, the "Unity" option was chosen from among iOS, Android, Unity, Web, and Flutter). Then, it is necessary to download the configuration file obtained, as well as the Firebase SDK, to add into the Unity Although functional, this approach is not trivial, and requires multiple steps to be implemented. Developers have to create a project in Firebase, to define the access rights for the database, and add an "application" to the project (here, the "Unity" option was chosen from among iOS, Android, Unity, Web, and Flutter). Then, it is necessary to download the configuration file obtained, as well as the Firebase SDK, to add into the Unity project.
Case Studies Using MQTT Below is a classic "switch on/off" example, demonstrable both in the virtual and real worlds. The virtual world is implemented with the Webots environment tool  [18]. The same messages can also be used to communicate with physical sensors and effectors (such MQTT's success is also due to its large community of developers and users. MQTT brokers, the entities that enable MQTT clients to communicate, as well as many clients, can be found for any type of operating systems, and over dedicated clouds. The same can be said for software stacks and libraries that exist for any development environment. MQTT reaches a wide audience interested in DIY (do it yourself) applications and domotics (home automation), but the protocol is due to IBM, which used it first to monitor oil pipeline sensors linked to the existing Supervisory Control And Data Acquisition (SCADA) system  [15].
Webots and MQTT Webots is an open-source robotics simulator. It is used in industry, in research, and in education. The Webots project began in 1996, originally developed by Dr. Olivier Michel at the Ecole Polytechnique Fédérale de Lausanne, Switzerland  [19]. Figure  4  shows two states (on and off) of a floor light available in Webots. The «pointLightIntensity» value of a floor light can be changed programmatically. The scripts (controller, supervisor) can be written in C, C++, Java, Python and Matlab. We used Python, which provides an easy way to integrate the MQTT protocol, in order to allow our virtual world to be manipulated both from inside (by other scripts) and outside Webots. as push buttons and LEDs), and virtual and real worlds can obviously be mixed in advanced and multimodal scenarios.
Webots and MQTT Webots is an open-source robotics simulator. It is used in industry, in research, and in education. The Webots project began in 1996, originally developed by Dr. Olivier Michel at the Ecole Polytechnique Fédérale de Lausanne, Switzerland  [19]. Figure  4  shows two states (on and off) of a floor light available in Webots. The «point-LightIntensity» value of a floor light can be changed programmatically. The scripts (controller, supervisor) can be written in C, C++, Java, Python and Matlab. We used Python, which provides an easy way to integrate the MQTT protocol, in order to allow our virtual world to be manipulated both from inside (by other scripts) and outside Webots. Thus, thanks to a publish/subscribe mechanism, this world can be driven by thirdparty applications. For instance, in a Windows 11 operating system, on which Mosquitto has been installed, the DOS commands below allow, respectively, to publish an «ON», and publish an «OFF» message, and subscribe to a topic named «bci_team/led», via the broker «test.
For instance, in a Windows 11 operating system, on which Mosquitto has been installed, the DOS commands below allow, respectively, to publish an «ON», and publish an «OFF» message, and subscribe to a topic named «bci_team/led», via the broker «test. mosquitto. org»: mosquitto_pub -h test. mosquitto. org -t bci_team/led -m "ON" mosquitto_pub -h test. mosquitto. org -t bci_team/led -m "OFF" mosquitto_sub -h test. mosquitto. org -t bci_team/led This software solution is interesting for testing the projects, locally and remotely. But sometimes it is also necessary to provide users with various real effectors (push buttons, sliders, potentiometer, etc. ). The next section discusses this topic.
MQTT, IOT2040 and Arduino The IOT2040 device is a gateway provided by SIEMENS, widely used in the field of IoT and IIoT (Industrial Internet of Things). This equipment can be used autonomously, as is the case here, or in an industrial context, as we will see below. As illustrated in Figure  6 , using the IOT2040's on-board Arduino board is as easy as using a UNO board  [23]. It is just necessary to install the Intel Galileo package using the Arduino board's manager, as illustrated in Figure  7. The only difference in programming with the ESP32 boards concerns the pins declaration that correspond to the UNO ones and the use of the Ethernet library instead of the Wi-Fi one. Finally, MQTT communication is carried out in the same way as with the ESP32 board, using the PubSubClient library.
MQTT: IOT2040 Industrial Approach Case Study An industrial approach case study is illustrated in Figure  8. This describes a robot cooperation task developed within the INCASE Interreg project  [24]. The heart of our system is based on a SIEMENS IOT2040 that can be directly connected to an industrial PROFINET network, making it easy to communicate with an Industrial Human-Machine Interface (HMI) as the KTP600 used and an S7 1200 SIEMENS PLC (Programmable Logic Controller) (CPU 1212C). The IOT2040 runs a Yocto Linux operating system, and gives access to convenient software (MQTT broker, Node-Red WEB HMI design, Arduino programming compatibility. ) as well as Internet connectivity  [25]. The purpose of this case study was to show that the robots and the conveyor could work together to accomplish a task asked by an end user consisting of: 1.
We can also use the Node-Red flow programming tool already installed in our IOT2040. This is illustrated in Figure  9. This is an interesting solution from three points of view. First and foremost, it requires no programming skills for the PLC, and therefore for the TIA Portal. Secondly, the Node-Red designed HMI can be accessed from a simple browser on the local network, or from anywhere in the world if the IOT2040 is connected to the Internet, of course securely. Finally, the Node is an open-source solution used in the industry within the context of IIoT and Industry 4. 0 for instance data acquisition, storage tasks and monitoring  [27] , design and implementation of a SCADA architecture  [28] , or as a useful software tool to store IoT device data onto a blockchain  [29]. Communication with the DODOT robots becomes then very simple, knowing that we operate using the MQTT messaging protocol for the process control.
This solution has been used several times without any malfunctions being observed when restarting. However, we cannot guarantee the reliability of the solution in the long term. That said, as these hardware and software tools are available on an industrial platform, we can rely on SIEMENS' reputation in considering long-term deployment. An interesting programming possibility given by the IOT2040 is illustrated in Figure  8. The demonstrator uses two DOBOT Magician robots  [26]. These robots must be initially calibrated for the experiment to work, and the coordinates of the positions to reach in the input and output warehouses need to be recorded in a database or calculated from a reference point. This can quickly become a constraint if you proceed in a supervised way, using the S7 PLC. For example, we need HMI in the KTP600 other than the one intended for the end user, or a joystick to be connected to the IOT2040, knowing that the PLC can communicate with this device or with the robots using MQTT.
When a message is sent to a MQTT subject to which the cobot has subscribed, this triggers the execution of a function (see callback mechanism). In our case, a movement of the robotic arm to the right or to the left is activated. Then the opening of the robot's gripper releases the package of biscuits, which is then transited on one of the two belts, as illustrated on Figure  11. The user is in charge of the final decision, and has to collaborate with the robotic arm, by sending it information. This can be done in various ways, according to the context and profile of the user. The cobot (here a Ned Niryo, provided by Webots) can perform a «Pick and Wait» movement when it receives a specific MQTT message (See «PICK_WAIT» in the Table  1 ). So, after picking up a packet of biscuits, the cobot waits for a human decision.
It can be achieved by a voice command, a touch on a dedicated button in a graphical interface, an eye-gaze, and so on. When a message is sent to a MQTT subject to which the cobot has subscribed, this triggers the execution of a function (see callback mechanism). In our case, a movement of the robotic arm to the right or to the left is activated. Then the opening of the robot's gripper releases the package of biscuits, which is then transited on one of the two belts, as illustrated on Figure  11. The developer can decide to code the published and subscribed functions in order to chain the tasks, with more or less automation, and more or less exchange with humans, depending on the level of complexity or security required. For example, when the Webots supervisor receives a "SPAWN" message to generate a new packet of biscuits, it is possible, following this, to request the cobot to execute a "PICK_WAIT" task, triggered (published) by the supervisor.
The Niryo controller will receive this message (thanks to a MQTT subscribe mechanism), and will move the various joints of the robot in order to perform this task. Another message, coming directly from the user will command a left or right move. The developer can decide to code the published and subscribed functions in order to chain the tasks, with more or less automation, and more or less exchange with humans, depending on the level of complexity or security required. For example, when the Webots supervisor receives a "SPAWN" message to generate a new packet of biscuits, it is possible, following this, to request the cobot to execute a "PICK_WAIT" task, triggered (published) by the supervisor. The Niryo controller will receive this message (thanks to a MQTT subscribe mechanism), and will move the various joints of the robot in order to perform this task.
Another message, coming directly from the user will command a left or right move. As illustrated in Figure  12 , we used the Ned from the Niryo robot provided by Webots to conduct tests on MQTT communication for a multimodal purpose. MQTT, which is well known for machine-machine communication, is here also used for communication between the human operator and the cobot that can help him/her to achieve a desired task. As illustrated in Figure  12 , we used the Ned from the Niryo robot provided by Webots to conduct tests on MQTT communication for a multimodal purpose. MQTT, which is well known for machine-machine communication, is here also used for communication between the human operator and the cobot that can help him/her to achieve a desired task. Specifically, a robot controller coded in Python is used to drive the Ned robot.
A supervisor, also coded in Python, is able to generate elements in the virtual world (see left in Figure  12 ). In our case, the supervisor generates a packet of biscuits to respond to a «SPAWN» MQTT message. These two scripts are communicating across MQTT messages. Thus, a Wizard of Oz (human agent) (see Figure  1 ) can inject specific messages into the system, to unblock a situation or intervene in place of a human or robot agent that is momentarily failing (because of fatigue, a network problem, misunderstanding of the command, the required level of security not being authorized, etc. ). Specifically, a robot controller coded in Python is used to drive the Ned robot. A supervisor, also coded in Python, is able to generate elements in the virtual world (see left in Figure  12 ). In our case, the supervisor generates a packet of biscuits to respond to a «SPAWN» MQTT message.
These two scripts are communicating across MQTT messages. Thus, a Wizard of Oz (human agent) (see Figure  1 ) can inject specific messages into the system, to unblock a situation or intervene in place of a human or robot agent that is momentarily failing (because of fatigue, a network problem, misunderstanding of the command, the required level of security not being authorized, etc. ). Figure  13  represents a snippet of our Python program (ned_python. py) in charge of the Ned robot movements, according to the MQTT messages received. The next part of the article describes how a mobile application allows the use of various interaction modalities (voice, touch, accelerometer, light sensor, etc. ) very easily, via App Inventor connected to MQTT. The next part of the article describes how a mobile application allows the use of various interaction modalities (voice, touch, accelerometer, light sensor, etc.
Multimodality with App Inventor and MQTT App Inventor for Android is an application development software created by Google, currently maintained by the Massachusetts Institute of Technology  [30]. We successfully used App Inventor and an experimental component named "Firebase DB", in previous work  [2]  in order to create quickly and easily some mobile applications to deploy and test multimodal prototypes. For comparison, within the framework of our current work on MQTT, we used an extension  [31]  allowing the easy integration of this protocol, within a mobile application developed for Android. Figure  14  shows the App Inventor designer using this MQTT extension and the Android APK executable version obtained in order to interact with the Webots Ned cobot. The «LEFT» and «RIGHT» buttons are colored the same way as the colors of the baskets positioned at the end of the two conveyor belts in the Webots virtual world.
In our case, the LMC is used as a complement or replacement for touch screens. The JavaScript snippet presented in Figure  16  is used to analyze the data (numbers and positions of the hands, fingers, extension moves, rotations, etc. ) provided by a Leap Motion device connected to the USB port of the local user machine. The developer has selected what kind of gesture interaction will trigger a MQTT message. For example, a slight movement of the index finger of each hand can be the trigger for a message published on the «bci_team/arm» (the robot arm) topic, with the "right" or "left" value indicating the choice of the user, and therefore the side to which the cobot will rotate before releasing the gripper. In order to optimize the flow of data transmitted on the network via the MQTT protocol, we only publish new data for the Ned robot simulated in Webots if they are different from the previous state (true or false) recorded by the leap motion (extended position of the index finger) during successive frames which follow one another at a very high speed.
Thus, a lesser pennation angle may suggest reduced strength capacity  (38). Five measures were performed for each one of the two parameters by a single operator. Minimal and maximal values were excluded, and the mean of the three remaining values was calculated. Image J software was used for image analysis. Muscular ultrasound examinations were performed using the EPIQ CVx (Philips ® , Andover, MA, USA), and the Vivid E95 (General Electric ® , New York, NY, USA).
Funding This study belongs to the  QUALIMYORYTHM national research program , dedicated to evaluating and improving the quality of life of children with inherited cardiac disorders, sponsored by  Montpellier University Hospital, France. The study was funded by the  French Federation of Cardiology  (2019  FFC  research team grant, www. fedecardio. org),the  French National Department of Health  (DGOS, GIRCI-SOHO, APITHEM 2019, www. girci-soho. fr),and the  French National Rare Cardiac Disease Network  (2018 CARDIOGEN grant, www. filiere-cardiogen. fr). Additional research funding was obtained from young researcher award ( Luc Souilla , 2021 doctoral research grant,  University of Montpellier ;  Oscar Werner ,  AOI 2019 ,  Montpellier University Hospital ;  Martina Avesani ,  EACVI training grant ,  App000088435 ).
Zooplankton and ichthyoplankton community assessments depend on species diagnostics, yet morphological identifications are time consuming, require taxonomic expertise, and are hampered by lack of diagnostic characters -particularly for larval stages. Metabarcoding can identify multiple species in communities from short DNA sequences in comparison to reference databases. To evaluate species resolution across phylogenetic groups and food webs of zooplankton and ichthyoplankton, we compare five metabarcode mitochondrial (mt)DNA markers from gene regions of (a) cytochrome c oxidase subunit I, (b) cytochrome b, (c) 16S ribosomal RNA, and (d) 12S ribosomal RNA for DNA extracted from net tows in the Northeastern Pacific Ocean's Salish Sea across seven sites and two seasons. Species resolved by metabarcoding are compared to invertebrate morphological identifications and biomass estimates.
Metabarcoding markers evaluated for the zooplankton communities Effective metabarcoding gene regions (markers) require an appropriate level of sequence variability to distinguish among species/taxa of interest, and the primers that flank these diagnostic sequences must anneal to conserved sequences on either end  [31] [32] [33] [34] [35] [36]. When the appropriate gene region/marker and primers are selected, the internal sequence region contains nucleotide variants that can be used to distinguish among the species/taxa in a sample in comparison to reference sequence databases  [28] [29] [30] [31] [32] [33] [34] [35] [36]. Researchers thus aim to select the metabarcoding markers and corresponding primers that are most likely to identify the target taxa/species to the desired taxonomic level  [13, [28] [29] [30] [31] [32] [33] [34] [35] [36].
For all MiSeq runs, we used DNA concentrations of 10pM, measured with a Qubit ® fluorometer. A 30% PhiX DNA spike-in was used to enhance data quality of samples that may have had low nucleotide diversities  [31, 36, 61]. Illumina MiSeq runs were performed at the Ohio State University's Molecular and Cellular Imaging Facility (https://mcic. osu. edu/home), and the autumn 2018 samples additionally were run at the Oregon State University's Center for Quantitative Life Sciences (https://cgrb. oregonstate. edu/bioinformatics) to evaluate congruence. The different markers were run on separate lanes.
Bioinformatic processing Adapters and amplicon primers were trimmed from the sequence reads using the program Cutadapt (v 3. 7  [81] ), without length trimming and with each sequence pair requiring a match to either the forward or reverse primer (respectively). Adapter-trimmed sequence reads then were quality-filtered with DADA2 (v 1. 18. 0  [82] ), using minimum length of 100 bp, PhiX removal, limited quality truncation (trunQ=2), and maxEE(5) settings. High quality reads then were run through the DADA2 pipeline to evaluate errors, dereplicate reads, merge read pairs (having a minimum overlap of 20 bp), check for chimeras, and create Amplicon Sequence Variant (ASV) files for ASVs having two or more reads. To identify the taxon for each ASV, BLASTn  [83]  was queried against the NCBI (National Center for Biotechnology Information) nt database [84] (downloaded 11/12/2021), whose output displayed the best "hit" (i.
e. , sequence match) for up to 4,000 target sequences, to circumvent individual taxa that had large numbers of sequenced individuals from dominating the BLASTn results. A negative taxonomic identification (taxID) list excluded taxIDs for which the "scientific name" category included "uncultured", "environmental samples", "metagenome", "unidentified", or "unclassified" labels, including nodes downstream of those identified using the program Subtree  [85]. BLASTn data then were reformatted to exclude matches less than the designated length cutoffs (300 bp for LrCOI, 100 bp for Cop16S and Mol16S, 140 bp for MiFish, 120 bp for FishCytb). Only taxIDs with the highest percent identity per ASV were included in taxonomic analyses. All taxIDs from the BLASTn results were converted to a standard taxonomic hierarchy using Taxonkit  [86] , which was modified further to fill in gaps in the taxonomic hierarchy by assigning missing values from the next lower hierarchical level that was identified (e.
g. , an unlabeled family with a known genus would be classified as genus__f). A custom script then parsed all taxID hits for each ASV to determine its best (i. e. , closest match) taxonomic assignment (https://github. com/McAllister-NOAA/asv_to_taxonomy). Thus, taxonomic choices were based on the deepest common hierarchy shared by all best BLAST hits per ASV, with the final taxonomic depth appropriate to the confidence of assignment based on the percent identity. These confidence rankings allowed hits ≥95% (for protein-encoding genes) and /≥97% (for rRNA genes) to be assigned to species level, 95/97%>x≥92/95% to genus, 92/95%>x≥87/90% to Family, 87/90%>x≥77/80% to Order, 77/80%>x≥67/70% to Class, 67/70% >x ≥60% to Phylum, and any hit <60% was assigned to "unknown. " Reference sequences that were assigned to more than one taxID were purged from the Results, unless that reference sequence was the sole best hit for that ASV.
Those decisions produced a file that linked each ASV to its taxonomic identity, which then was used for downstream assessment. Morphological taxonomic data were processed to evaluate concordance with the sequencing data from each marker. Taxonomic IDs were generated using the name2taxid function of Taxonkit  [86]. Gaps in the taxonomic hierarchy were filled only when its morphological assignment corresponded to an intermediate taxonomic level (i. e. , Suborder, Superclass), in which case the intermediate taxonomic identification was designated with an appropriate lower-level modifier (i. e. , Subclass__f equated to a Family classification for the Family within that known Subclass).
Marker and morphology data comparisons were made by first merging identical taxonomic assignments across all comparison datasets. Venn diagrams were created in R  [90]. Results from our metabarcoding assays were compared with morphological identifications made from the same (split) sample. Species appearing unique to either the metabarcoding assays and/or morphology were evaluated from these samples and across the sampling locations. The nearest taxonomic levels to which each marker and morphological methods identified the species/taxa were evaluated using network plots using the visNetwork package in R  [91]. Biomass proportions of species from morphological identifications and the proportions of sequence reads for single metabarcoding assays were arcsine square root transformed and statistically compared using simple linear regression models and Pearson correlations in R, with probability (p-) values corrected for multiple comparisons and controlled for false discovery rate  [92].
Samples for which either the morphological or metabarcoding marker proportions were zero were excluded from analyses. Assignments of putative nonindigenous species were evaluated in further detail, since their indication might invoke management response (see  [9, 93] ). Their ASVs were examined for two factors: 1) percent identity (PID) to the assigned species/taxon, and 2) whether potential locallyoccurring species, or known nonindigenous species from the Salish Sea or other NE Pacific regions, had published sequences for that gene region. Additionally, these ASVs were assessed for: 3) number of sequence reads, 4) number of samples in which the ASV was found, and 5) the PID of next closest assignment. ASVs having low PID and/or lack of reference data for locally-occurring species were considered "low confidence" matches here.