-
Články
- Časopisy
- Kurzy
- Témy
- Kongresy
- Videa
- Podcasty
A definition-by-example approach and visual language for activity patterns in engineering disciplines
Authors: Mario Janke aff001; Tobias Kuschke aff001; Patrick Mäder aff001
Authors place of work: Software Engineering for Safety-critical Systems Group, Technische Universität Ilmenau, Ilmenau, Germany aff001
Published in the journal: PLoS ONE 15(1)
Category: Research Article
doi: https://doi.org/10.1371/journal.pone.0226877Summary
Modeling tools are well established in software development. A model is the result of a series of modeling activities. The ability to recognize when a user is working on a certain modeling activity opens up a range of possibilities for context-sensitive support. One possible way to support the user is offering the auto-completion of the current task. The recognition of modeling activities is typically carried out by matching event patterns against events emitted by a user’s editing operations. A user that intends to add or customize auto-completions must be able to easily understand and create activity definitions. However, defining the currently required complex event patterns is a challenging and error-prone task even for a person with an intensive knowledge of event-processing languages. In this paper, we propose the visual definition language VisPaRec accompanied by a method that allows creating activity definitions in a semi-automated and graphical way. We evaluate our visual definition language in a comparative user study against the generic event-processing language Rapide. We found that the proposed visual representation increases comprehensibility while reducing time for constructing and modifying activity definitions significantly.
Keywords:
Vision – Engines – Language – Syntax – Computer software – Swimming – Programming languages – software development
1 Introduction
Automating repetitive tasks in software engineering processes has become essential for developers. Apart from increasing the efficiency of the development process, it can also improve the quality of the developed product by obviating human errors. For example, software developers, experts and novices alike, benefit from simple automations like auto-completion in an IDE [1]. Researchers demonstrated that automation can be beneficial for graphical modeling tasks as well [2–5]. There are plenty of opportunities to support a developer in recurring activities during model-driven architecture and design (e.g., model refactorings). However, the recognition of these activities is not a trivial task since they include a number of different, related editing operations. Complex event processing (CEP) [6] allows for the recognition of such activities and is the technology we apply for this and previous work. In previous work, we used complex patterns of editing events to update traceability information automatically upon recognizing users’ modeling activities [7] and successfully brought a visual language approach to traceability analysis [8–10]. In a succeeding project, we studied how software modeling activities can be recommended while a developer is editing UML models [11] and how such recommended activities can then be auto-completed [12–14]. Both proposed approaches build upon activity definitions captured as event-processing rules. Reactive to every editing operation carried out by the user, an implementation of the latter approach recommends a ranked set of context-relevant modeling activities for auto-completion. The typical workflow of integrating activity pattern-based completion into a tool includes using a general-purpose CEP language or declarative programming language. Alternatively, simple patters can be hardcoded without a proper CEP framework. However, this comes with serious drawbacks in terms of maintainability and expandability. We have previous developed a prototype architecture of an auto-completion tool based on a textual CEP language, but we hypothesize that a specialized visual language can increase the applicability of this and many other approaches. In general, the usefulness of such automation highly depends on their customizability to users’ needs. However, defining the required event-processing rules is a challenging task because very specific knowledge of the processing platform and its declaration language is required.
This paper presents the visual language VisPaRec accompanied by a definition method allowing non-CEP-experts to create and maintain activity definitions in a semi-automated way. We see multiple application scenarios where lowering the effort and knowledge necessary to work with activity definitions can benefit developers in the software industry. On one hand, tool vendors of model and code editors can develop CEP pattern based support more easily. On the other hand, modelers using modeling tools directly benefit by being able to customize and define their own activity definitions. The modelers may or may not be active programmers, but have full insight into their personal working patterns and customization wishes. Our approach aims to aid users in defining their own patterns and by that supporting their individual workflows. In this sense, pattern specification should require as little knowledge about programming and CEP as possible. Patterns should be comprehensible at a glance, easily maintainable and expandable. Through the definition-by-demonstration method proposed in this work, users can create activity definitions by demonstrating the desired activity within their modeling environment rather than being requested to write complex event processing rules. Thereby, technical and tool-specific aspects are abstracted and mostly hidden from the user.
The remainder of this paper is structured as follows. Section 2 reviews related work on complex event patterns, defining model transformations and programming by example. Section 3 describes the concepts of modeling activity definitions and their relation. Section 4 introduces VisPaRec, the visual definition language that we developed for specifying modeling activity definitions, followed by an analysis and comparison of selected event processing languages. Section 5 presents how VisPaRec can be embedded into a “by-demonstration” approach that automates large parts of creating a definition. Section 6 describes a user experiment that we conducted to evaluate comprehensibility, applicability and usability of VisPaRec. Finally, Section 7 concludes our work and outlines future research.
2 Related work
Supporting development activities in modeling-based environments is a relatively novel research topic. To the best of our knowledge, there exist no approaches that support users in defining their own activities and in employing them in modeling environments for auto-completion. There do, however, exist generic solutions for supporting users in the definition of complex event patterns and model transformation rules. Complex event processing, in general, is a technique to infer high-level knowledge from streams of low-level events. A core principle is the agglomeration of the simple input events into more structured agglomerations called complex events. Another characterizing feature are queries against these events, simple and complex alike. Usually, incremental evaluation is a key feature. Typical applications range from monitoring tasks, such as evaluating sensory data and network monitoring, over gesture detection to business rule engines.
Textually defining complex event patterns
Eckert et al.’s [15] comprehensive survey shows that, driven by varying user needs as well as strengths and weaknesses of the underlying engines, a rather high number of textual CEP languages have been proposed in the past. We exemplarily discuss three languages that follow different approaches in their design. Given the large variation in language features in the early days of rule processing, Rapide [16, 17] was proposed as a language independent of an underlying engine. It has a strong mathematical foundation and was designed as a general language framework. Rapide consists of a comprehensive and expressive set of rule features that has inspired CEP engines since and that is supported by most CEP engines today. The Drools Rules Language (DRL) [18, 19] is one of many production rule languages. It is tightly coupled with its host language Java. In DRL, persistent state is represented as Java objects called facts, which are stored in a Working Memory. Pattern matching happens through rules that specify facts and conditions that single or multiple facts must fulfill. Esper EPL [20] is a data stream query language. Its language design originates from the database query language SQL. Esper EPL abstracts the input as a data stream of tuples. These streams can be queried much like a relational database. Timing as well as sequencing constraints can be formulated in a high-level syntax. Additionally, Esper EPL allows combining data stream queries with pattern matching. We compare the part of these languages’ syntax that is relevant to the presented approach in Section 4.3.2.
Visually defining complex event patterns
In the field of complex event processing, a number of graphical editors, both proprietary tools and academic approaches, for defining patterns and rules exist. The SocEDA project [21] offers an editor for translating high-level definitions of complex event patterns into Esper EPL. The tool supports the pattern definition visually but also requires the user to write code of the underlying event-processing language. The visual representation of a pattern in SocEDA does not contain all information, but rather represents some of it merely within the code. Nowak et al. [22] present an editor based on the Palantir Government platform for creating rules in the event-processing language JESS. Similar to SocEDA, the visual representation does not include all the relevant information. The editor only presents additional information in a panel when requested by the user. Both approaches reduce the visual load by omitting some information and only showing it on demand. While this is effective for a modeling tool, it does not enable visual comprehension of patterns at all. Strelka is a graphical editor for defining rules developed by the REWERSE Working Group I1 [23]. The tool uses the UML based rule modeling language URML that allows users to visually model different types of rules based on UML class models. Boubeta-Puig et al. [24] describe a user-friendly, model-driven approach for specifying complex event patterns. Similar to our proposed method, users are able to design graphical models specifying event patterns. These models are then transformed into platform-specific event-processing code by the use of a corresponding model-to-text transformation. Their editor MEdit4CEP provides all instruments that are necessary to express conditions for recognizing modeling activities. However, even low-level language elements like logical operators are displayed by separate visual elements, which leads to high visual complexity and clutter. In contrast to the first two approaches, MEdit4CEP and Strelka do encode rules completely visually. The drawback of this approach is that the visual pattern definitions become very complex even for small rules, since a lot of information that could be represented very compactly, is displayed in a very explicit way. We further investigate this issue in Section 4.3. The introduced editors allow defining event patterns and rules without explicit knowledge of a platform-specific event-processing language, but they all are developed from the viewpoint of complex event processing. Additionally, these approaches do not provide mechanisms for defining auto-completions of modeling activities.
Defining model transformations
Sun et al. [25] presented an approach that allows users to demonstrate model transformations and to automatically derive transformation rules from this demonstration. In another study, Sun et al. [26] describe how layout information for model transformations can be captured during user demonstrations and effectively used later on. Biermann et al. [27] propose a framework for in-place transformations of EMF-Models. Based on their approach, Arendt et al. [28] developed the transformation language Henshin. In their work, they describe concepts like pre - and post-conditions of model states that have similarities to our work. However, transformation rules are intended to change models upon reaching defined states, whereas our approach regards edits, not state. Specifying the evolution of model elements comprising historic element states and restricting the timing of model changes are not the purpose of model transformation rules.
Graph transformation languages like Story Diagrams [29] can specify patterns similarly to transformation languages. A pattern matches a graph and applies the transformation to it, the outcome is a modified graph. This approach, therefore, cannot be used directly to specify an activity pattern. However, one could try to reinterpret the existing visual notations for graph transformations or augment them. Graph transformations only specify a state before and after the transformation. For the specification of activity patterns, continuous and possibly concurrent changes need to be specified.
Programming by example
Raza et. al. [30] propose a solution to the problem of ambiguity in example-based programming. They use the least general generalization to describe a set of examples. The inherent ambiguity involved in such tasks is a highly important issue our approach faces as well. Their approach aims to express rather small changes using a multitude of examples and was evaluated using a Microsoft Powerpoint add-in.
Conclusions
We conclude that there are approaches that support the graphical specification of rules. However, none of them provides a desirable solution to the problem of specifying event-processing rules in the context of modeling activity recognition. This is what we aim to accomplish with VisPaRec. VisPaRec is not intended to be a general-purpose EPL, but rather a domain-specific language for the representation of modeling activities that is easy to read and write for non-CEP-experts.
3 Concepts of modeling activity definitions
We aim to support a user in developing a model that comprises a set of model elements E. Typical model elements are packages, components, classes, interfaces, attributes, methods, associations, dependencies, and generalizations. The user is evolving this model through editing operations of the types add, modify, or delete. A modify operation changes attributes of an existing model element, e.g., the element’s name or type. This choice of operation types is extendable in nature and may be dependent on the application at hand. For specific applications, it might be useful to formulate more types. However, specific operation types like copying a model element or the act of moving one model element into another can be represented as a pattern of the fundamental types add, delete and modify. We denote the set of all editing operations performed by a user on a model as O. A modeling activity is then defined as a recurring set of editing operations carried out by the user on model elements.
As a running example, we introduce a modeling activity that represents the well-known refactoring “Extract Class” (see Fowler [31]) on a UML class diagram. During this refactoring, an attribute of an existing class is extracted into an independent class. Fig 1 shows the modeling activity performed on an example model of a software system. As a precondition, a class must exist and contain an attribute. In the example, the attribute Engine of the class CarConfiguration is extracted. The ellipses represent editing operations belonging to the modeling activity. The existing attribute is deleted (I) and a new class is added (II) within the same package CarConfigurator. The new class will be renamed (III) according to the deleted attribute Engine. The activity is completed by adding a new association connecting the two classes (IV) and modifying it into a directed aggregation (V). The user may freely decide about the sequence of editing operations. Naturally, some limitations are imposed by the modeling environment, e.g., classes need to be added before they can be connected.
Fig. 1. Editing operations for executing the activity “Extracting attribute as class”. The event-based recognition of a modeling activity requires an activity definition in the set of all activity definitions T. An activity definition specifies: (1) a set of expected editing operations that have to be performed to complete the modeling activity, (2) a set of expected element versions V capturing expected states of model elements during the modeling activity, (3) constraints on model element properties captured in element versions PV and across element versions PR, (4) constraints across editing operations and element versions SR restricting the operation sequence, and (5) an action to be executed upon recognition of the specified modeling activity. It is sufficient to store values of element properties in PV, while PR needs references to multiple element versions. The action part of the definition depends on the usage scenario. There are numerous ways to react to a detected activity, but in the scope of this paper, we illustrate our approach within an auto-completion technique that aims to complete the modeling activity the user started. Information specified in the action part of an activity definition therefore comprises completion actions A to be executed automatically and property defaults D to specify values of editing operations to be auto-completed.
Based on the introduced initial concepts, we developed a meta-model for activity definitions (see Fig 2). Whenever a rule matches, the result must be kept in a structured way to be usable for a possible auto-completion. It must specify editing operations already done, and how to complete the ones not done yet. An example is contained in the experimental replication package (accessible at https://dataverse.harvard.edu/dataset.xhtml?persistentId=doi%3A10.7910%2FDVN%2FFTPF3Z, cp. R1T on page 32) showing how to specify the necessary information using three arrays. Explicit specification is necessary in any general-purpose language.
Fig. 2. The meta-model for activity definitions. 4 VisPaRec—A language for activity definitions
Based on the meta-model introduced in the previous section, we developed a visual representation for each concept. We followed Moody’s principles for creating efficient visual software engineering notations [32]. Moody argues that the basis for a “good visual notation” is having a clear design goal that specifies what kind of information needs to be presented, what audience is using this information (theory of cognitive fit), and what visual dialect is suitable for that purpose. Moody lists fundamental principles that a notation should fulfill. Referring to the principles of semiotic clarity, perceptual discriminability, semantic transparency, visual expressiveness and dual coding, the basic notation elements should exhibit the following characteristics. They should correspond 1 : 1 to their semantic construct. Therefore, we mapped each meta-model element to an individual visual notation element while keeping their number cognitively manageable (graphic economy). Furthermore, notation elements should be clearly distinguishable from each other by using the full range and capacity of visual variables like shape, color and size. Also, text should be used redundantly to support graphic elements. In the following, we introduce the notation elements of our visual definition language and explain them on examples.
4.1 Language concepts
Model element (C1)
Each model element involved in an activity is represented by an open ended swim lane, much like in UML (see Fig 3). A vertical label on the left hand side of this swim lane contains the element type. The swim lane is a container that groups different versions of an evolving model element and the editing operations that transition from one version into the following.
Fig. 3. Visual representation: Model element (C1). Decision: Group versions of an element via swim lanes. Rationale: We see an object over its lifetime as a semantic construct on its own. Swim lanes help to reach the goal of representing each semantic construct 1 : 1 as they are a single notation element for a single construct. The commonly used alternative is to encode the edited model element through a guard of the object’s ID, which corresponds n:1 to the semantic construct. The swim lane concept also contributes towards graphic economy.
Element version (C2)
An element version uses the notation of classes from a UML class diagram. We distinguish three types of element versions (see Fig 4): First, Existent specifies that a certain model element must exist before the modeling activity is started. Second, Non-Existent specifies that a certain model element may not exist before the start of an activity or after it is being deleted during an activity. Third, ordinary element versions specify certain states in the model element’s evolution. Different background colors are used within swim lanes to visually highlight the existence and the non-existence of a model element. Elements within the same swim lane have an implicit sequence constraint (see Sequence Constraints (C5)) among them, while no sequencing between swim lanes is enforced. This allows for more flexible patterns, as concurrency can be formulated.
Fig. 4. Visual representation: Element versions (C2). Editing operation (C3)
Editing operations are represented with a circular outline. According to the principle of dual coding, we visualize the operation types add, modify, delete, within the circle textually and additionally as a colored symbol (see Fig 5). An editing operation must be connected to a previous element version that specifies the state of the element before the operation is performed and to a resulting element version that specifies the element’s state after the operation. Two dashed arrows visualize these relations. The direction of those arrows points from the previous element version to the operation and from the operation to the resulting element version. The visual representation of model elements, element versions and editing operations all differ in shape and size. The graphical grouping of versions and operations into swim lanes is intended to clearly visualize the involved model elements and their evolution throughout a modeling activity.
Fig. 5. Visual representation: Editing operations (C3). Decision: Each operation type has its own icon distinguished by color and shape. Rationale: As the operation type has a huge impact on the interpretation of an edit, it must represent the types in a clearly distinguishable way ensuring semiotic clarity. Varying color and shape ensure perceptual discriminability. We expect this design to ease comprehension compared to all current solutions, which represent these concepts solely by a different name or id of the change type.
Property constraint (C4)
Property constraints specify values of element properties and are expressed as logical terms. To keep the graphical complexity manageable, we chose to not represent logical expressions in a graphical way. Instead, we specify these expressions textually by using operators like those shown in Fig 6. Property constraints are partitioned into static and dynamic ones. Static constraints PV specify constraints on concrete values of element properties and are therefore defined within an element version. A very common static property constraint is the specification of the type of an element. Dynamic constraints PR are defined as references across properties of versions of the same or different model elements involved in an activity. These references are visualized as directed connectors that point from the constrained to the referenced element version. Two elements having the same name, or one element being the child of another one are typical dynamic property constraints. The left hand part of Fig 6 shows the two visual representations of property constraints. Property constraints can be applied to restrict all element versions except those of the type Non-Existent. We do not check for syntactical or semantical mistakes within property constraints at modeling time. However, at a later point, the transformation into executable event processing rules (cp. Section 5.4) does check syntax.
Fig. 6. Visual representations: Property constraints (C4) (left) and possible constraint operators (right). Decision: Represent static and dynamic property constraints differently. Rationale: A fixed parameter and a reference between multiple model elements are semantically rather different. Separate visual representations help to uncover and visualize dependencies between model elements to the user and contribute to better perceptual discriminability of concepts.
Sequence constraints (C5)
Sequence constraints express timing and order conditions. They start and end at element versions or editing operations (see Section 3). We decided to visually distinguish sequence constraints from property constraints.
Sequence constraints use orange connectors instead of blue ones and squares as source symbols instead of dots. Fig 7 shows two examples of sequence constraints. The operator “>” means “after” and “TimeStamp > Created” (upper example) expresses that the editing operation must be performed after the model element has been created. In contrast “<” means “before” and the lower example specifies that the class has to be added before the interface is added.
Fig. 7. Visual representation: Sequence constraints (C5). Decision: Distinguish property constraints from sequence constraints. Rationale: We regard sequence constraints, which manage event order, and property constraints, which manage event content relations, as semantically different. Accordingly, we represent them differently increasing perceptual discriminability.
Completion actions (C6)
Completion actions serve as replacements for those editing operations that have not been performed manually. An activity definition comprises completion actions for all specified editing operations. Each completion action contains property value assignments that correspond to the property constraints of its editing operation. As such, it can be automatically retrieved from the editing operation definition. For that reason, completion actions are not explicitly expressed in a visual activity definition. Instead, each editing operation and the resulting element version visualize the corresponding completion action.
Completion defaults (C7)
Completion defaults specify default values for element properties that are applied when the auto-completion of a modeling activity is executed. Completion actions can comprise completion defaults that must be defined explicitly. We integrate the completion defaults into the resulting element versions of editing operations as shown in Fig 8. The example in the figure specifies that a user must add an association of subtype aggregation or composition to match. If this operation is auto-completed rather than manually executed, an association of subtype composition will be added.
Fig. 8. Visual representation: Completion defaults (C7). 4.2 VisPaRec’s expressiveness and scope
At the core, all EPLs are used to specify patterns by describing participating objects as variables and how they are related as guards, as well as what should happen whenever a pattern is matched as an action [33]. VisPaRec allows users to specify the variables in multiple different ways, tailored to the domain. Both, element versions as well as editing operations, serve as variables. As element versions are allowed to have arbitrary properties, they have full expressiveness. Sequence constraints, property constraints and model elements represent the guard concept. Model elements and sequence constraints, however, can only express specialized relations and are not as expressive as general guards. Property constraints can specify arbitrary relations between elements, and therefore are as expressive as the guard concept. This has the consequence that model elements and sequence constraints can be expressed as property constraints, but doing so results in massively harder to read and write descriptions. One can therefore see them as an abbreviating syntax construct. The completion actions are the equivalent of the action of a CEP pattern. One should note that the action of a CEP rule is only activated when the whole pattern is matched, while completion actions are applied whenever a single variable is matched. The behavior of completion actions is at least as expressive, as one can perform the desired action in the completion action of the object matched last. Table 1 summarizes the mapping between the basic CEP concepts and the visual concepts in VisPaRec implementing them. The table shows that for every CEP concept a VisPaRec element with the same expressiveness exist, concepts with full expressiveness are marked in italic. Therefore, VisPaRec can be used to express arbitrary complex events patterns.
Tab. 1. Mapping between CEP and VisPaRec concepts. 4.3 Comparison of event processing languages
Now, we take a closer look into how different EPLs specify the basic CEP concepts discussed in Section 4.2 as well as the domain specific concepts described in Section 3. Fig 9 shows an example pattern in VisPaRec that we will refer to as the example activity. It is a simplified version of the pattern shown in Fig 12 that we reduced for space reasons. We formulate this pattern in various CEP languages in order to compare them with each other. The pattern matches when an attribute is deleted and a class is added, which is then renamed to the name of the deleted attribute. No additional explicit order between these events is enforced. Figs 9, 10 and 11 show the implementation of this activity in the respective languages.
Fig. 9. Example activity modeled in our VisPaRec language. Fig. 10. Fig. 11. Fig. 12. VisPaRec definition of the modeling activity “Extracting attribute as class”. 4.3.1 Evaluation of visual event processing languages
Strelka. Fig 10 shows how the example activity can be modeled with Strelka, using URML. The variables are represented by classes following the UML notation. The blue arrows pointing from a class to the rule are so-called ClassificationConditions, specifying what a single class has to fulfill in order to fit the pattern. The blue arrows pointing from an association to the rule are AssociationConditions, specifying how classes must be related in order to fit the pattern. These two concepts represent guards.
MEdit4CEP. The model depicted in Fig 11 represents the example activity modeled in MEdit4CEP. Simple events serve as variables and are represented as rectangles with a green “E” on the top left corner. If an event has properties, these are listed within the event’s rectangle as separate rectangles with a green “P” on the top left corner. Constant values are visualized as black rectangles with rounded corners and a broad border. Any comparison operator is represented by a single model element that is a pink circle containing the comparison symbol. It must have two incoming arrows to specify the arguments, which need to be ordered explicitly by the numbers “1” and “2”. Comparison operators together with constants represent the guard concept. Any pattern must contain a complex event that must have at least one property that is connected to a property of a simple event. Complex events are represented much like simple events, but use red labeling.
Comparison. The example shows that in Strelka and MEdit4CEP manyfold relations must be explicitly specified. This is the result of the very general nature of both languages. These relations could actually be formulated more intuitively and more compactly. The main problem is that one must explicitly specify which operations and element versions refer to the same object, which happens very frequently in our application. Additionally, the order of editing operations must be specified by enforcing an order between time stamps. Furthermore, MEdit4CEP displays all event properties at all times, which is not necessary for the given application, where the same two event types are used over and over. Note that we left out properties not relevant to the small pattern presented, and more properties are relevant in general. Both diagrams reach the limit of what is comfortably displayable on one screen even for this very small example. We therefore come to the conclusion that the presented unspecialized visual languages are not applicable for larger patterns within our application.
VisPaRec differentiates itself through several design choices of which we regard the following ones as most significant.
VisPaRec uses swim lanes to keep track of element versions as well as editing operations regarding the same object. The other two considered visual languages use the guard concept to model this. While guards prevent introducing a new concept, they require encoding the semantic of referring to the same object numerous times.
VisPaRec gives editing operations a specialized visualization, whereas Strelka and MEdit4CEP use their respective guard syntax. Thereby, VisPaRec can reduce the number of elements to a more manageable amount and differentiates the semantically very different editing operations visually as well.
VisPaRec colors sequence constraints and property constraints differently, which again keeps semantically different concepts also visually distinguishable.
Regarding graphic economy, Strelka uses a very low number of different symbols. VisPaRec does introduce more symbols than Strelka, as it is necessary to cover the range of semantic constructs deducted from the metamodel in Fig 2. MEdit4CEP uses some symbols that we find too excessive for the application, and simply inflate the number of symbols. Examples for this are the element naming, the differentiation between element and properties, as well as the numbers identifying the inputs of the = relation (even though it does not matter since = is a symmetric relation).
4.3.2 Evaluation of textual event processing languages
To analyze the similarities and differences of common EPLs applicable for the definition of activity patterns, we discuss main language concepts on an example activity written in Rapide, DRL, and Esper EPL (cp. Section 2). The resulting specifications are shown in Listing 1, 2 and 3, respectively. For brevity and readability, we are omitting surrounding parts of the pattern specification like rule declaration, variable declarations, rules’ action part etc. and focus on the core pattern definitions.
Listing 1. Example activity written in Rapide.
1 EditingOperation(Element_Version is ? V3) where
2 ( ? V3.Type = “attribute”)
3 ? 01(Element_Version is ? V4, Operation_Type is “delete”) where
4 ( ? V4.ID = ? V3.ID)
5 ? 02(Element_Version is ? V5, Operation_Type is “add”) where
6 ( ? V5.Type = “class”)
7 ? 03(Element_Version is ? V6, Operation_Type is “modify”) where
8 ( ? V6.ID = ? V5.ID and ? V6.Name = ? V3.Name)
Listing 2. Example activity written in DRL.
1 EditingOperation( $ V3 : Element_Version, $ V3.Type == “attribute”)
2 $ 01 : EditingOperation( $ V4 : Element_Version,
3 Operation_Type == “delete”, $ V4.ID == $ V3.ID)
4 $ 02 : EditingOperation( $ V5 : Element_Version,
5 Operation_Type == “add”, $ V5.Type == “class”)
6 $ 03 : EditingOperation(V6 : Element_Version,
7 Operation_Type == “modify”, $ V6.ID == $ V5.ID,
8 $ V6. Name == $ V3. Name)
Listing 3. Example activity written in Esper EPL.
1 ( EO3 = EditingOperation (Element_Version.Type = “attribute”) ->
2 01 = EditingOperation (Operation_Type = “delete”,
3 Element_Version.ID = EO3.Element_Version.ID) ) and
4 ( 02 = EditingOperation (Operation_Type = “add”,
5 Element_Version.Type = “class”) ->
6 03 = EditingOperation(Operation_Type = “modify”,
7 03. ElementVersion.ID = 02.ElementVersion.ID) )
8 where 03.ElementVersion.Name = 01.ElementVersion.Name
Assignments. In the Listings 1, 2 and 3, assignment operators are colored blue, while comparison operators are colored red. A comparison shows that the languages differ in how they mark assignments, how they express relations to constants and how they express relations to variable parts. Rapide uses the keyword “is” for variable assignments as well as comparisons with constants. It uses “=” for comparisons between variables. DRL uses “:” for all assignments, but “=” for both types of comparison. In Esper EPL, assignments as well as comparisons use “=”. All three ways of specification are reasonable, as the separation of syntactically different operators is important but it also is valuable to keep the number of syntactical elements of a language manageable. Furthermore, Esper EPL is missing a syntax construct that allows assignments of attributes to variables. While the syntax for this can be seen in line 1 for Rapide and DRL, Esper EPL needs to refer to the attribute using the object every time. This can be rather clunky when using a sub-object often, or when referring to an attribute of a sub-object.
Variables. All variables are colored green in the examples. The type of editing operations like O1 and O2 must be declared on every use in DRL and Esper EPL, while Rapide declares all variables at the start of the file. Rapide, therefore, is very compact in specifications where object types are often reused. Variables are typically marked with the prefix “?” in Rapide and “$” in DRL, while Esper EPL usually does not use such a prefix. Although a prefix adds an extra character that may look confusing at first, it helps differentiating variables from constant expressions. The prefix “?” stresses the variable nature and thus has a somewhat plausible association with a variable. Anyway those are merely conventions.
Sequencing. All sequencing related language elements are colored purple in the examples. In Esper EPL, the sequencing of events is specified through the “ − >” operator, which is used whenever the left hand side event happens before the right hand side event. It binds weaker than the “and” operator. The keyword “where” is used to filter the matches of a pattern after it is completed. This is necessary because the example activity has two concurrent streams of events that must be connected by the constraint of identical names. While Esper EPL’s syntax allows the user to specify the sequence of events in a very compact way, the user must explicitly specify every detail of the sequence. On the one hand, this makes the user more aware of the event flow than the syntax of Rapide or DRL, on the other hand, we found it surprisingly hard to get the sequencing right for examples within our application. The other two languages formulate sequencing constraints just like any other property constraint, while the internal matching order is determined by the order of the statements from top to bottom.
In conclusion, all three textual languages were able to express the example within a similar amount of space. We discuss their applicability in regards to modeling activity patterns within the context of our evaluation in Section 6.1.
5 Defining modeling activities by example
We now propose a semi-automated definition process that comprises three steps: (1) demonstrating the modeling activity and deriving an initial activity definition, (2) manually refining the activity definition, and (3) generating platform-specific event-processing rules from the activity definition. The following subsections describe these three processing steps in detail.
5.1 Step 1: Demonstrating the modeling activity
The first step is often the hardest. Therefore, providing an intuitive way for creating an activity definition rather than starting to construct it from scratch is highly desired. A state-of-the-art way to address this goal is the definition “by-demonstration”, which allows a user to simply execute a desired behavior within a familiar working environment and to automatically derive an initial description based on that demonstration. This demonstration step starts on an empty diagram of a supported model type, e.g., a UML class diagram, and comprises two phases: (1a) modeling the activity preconditions and (1b) performing the editing operations. The following paragraphs describe these two phases and the transformation rules that are applied to create an activity definition that conforms to the meta-model depicted in Fig 2.
Step 1a: Modeling the activity preconditions
The preconditions of a modeling activity comprise model elements that have to be present before the modeling activity may be performed. In order to demonstrate the preconditions, the user adds the model elements to an empty diagram and defines their important properties. The preconditions for our example activity can be seen in Fig 1. Before starting the activity, a class must exist containing an attribute to be extracted. While the user is modeling the activity preconditions, Rule 1 to Rule 4 are applied. This step leads to at least one element version for each modeled element, specifying all relevant property constraints. Once all activity preconditions have been modeled, the user approves them and thereby enters phase (1b): the demonstration of the editing operations.
Rule 1: Add new model element
1 Trigger: editing operation o of type add for a model element e (o ∈ O, e∈E|o=add(e))
2 create an element version v0, where v0 specifies the state before o: v0 = pre(o)
3 define the non-existence of e by setting v0 to type Non-Existent
4 create an element version v1, where v1 specifies the resulting state of o: v1 = result(o)
5 forall non-empty properties x of v1, except ID and Name do
6 define a property constraint of the type (identifier(xi) = value(xi))
Rule 2: Modify existing model element
1 Trigger: editing operation o of type modify for a model element e (o ∈ O, e∈E|o=modify(e))
2 retrieve an element version vn, where vn is the last version of e preliminary to o (vn = last(e))
3 create an element version vn+1, where vn+1 specifies the state of e subsequent to o (vn+1 = result(o))
4 forall properties x of vn+1 do
5 if value(x(vn)) ≠ value(x(vn+1)) then
6 define a property constraint of the type (identifier(x) = value(x))
Rule 3: Delete existing model element
1 Trigger: editing operation o of type delete for a model element e (o ∈ O, e∈E|o=delete(e))
2 retrieve an element version vn, where vn is the last version of e preliminary to the model element deletion operation o: vn = last(e)
3 create an element version vn+1, where vn+1 specifies the state of e subsequent to the model element deletion operation o: vn+1 = result(o)
4 define the non-existence of e by setting vn+1 to type Non-Existent
Step 1b: Performing the editing operations
Upon approving the preconditions, Rule 5 is applied. This removes obsolete element versions and editing operations and leads to exactly one element version of type Existent for each preexisting model element. The user then performs the editing operations of the modeling activity involving preexisting and newly created model elements. Again, Rule 1 to 4 are applied in order to create the corresponding objects in the activity definition. To demonstrate a delete operation, a preexisting model element is deleted from the diagram. For demonstrating an add operation, a new model element can be added from the toolbox without the need to change any property. The user only needs to edit those element properties that shall be transformed into property constraints of the activity definition (Rule 2). Our activity recognition approach handles the undo of editing operations within the modeling tool, i.e., a user may use this functionality upon mistakes in performing editing operations and modeling preconditions without impact on the resulting activity definition. Fig 1 shows that Class2 has been modified to express a property constraint: the name of Class2 must be set to the name of the extracted attribute. Most of these property constraints can be derived automatically during the demonstration step by applying Rule 6. Rule 6 replaces identical constant property values with references to the corresponding model elements, making the static property constraints dynamic. Fig 12 illustrates such an initial definition that was obtained by demonstrating the example activity shown in Fig 1.
The presented set of transformation rules is independent of the model type that an activity is applied to. The set is meant as a basic rule set for creating initial activity definitions according to the specified meta-model. However, the set may be adjusted or enhanced for other types of models.
5.2 Limitations of rule definition by example
Rule definition by example essentially uses a bit of event data, in our case a stream of editing operations, to infer matching rules. A rule can therefore be abstracted as one way to interpret correlations contained in the given bit of data. Unfortunately, the derivation process is inherently ambiguous, no matter how many demonstrations are given. As an illustrating example, two different element versions a and b may have the name “Factory”. The property constraints shown in Listing 4, as well as infinitely many other ones, would fit that state of data.
Rule 4: Create version for preexisting model elements
1 Trigger: model element e that have not assigned any element version (e∈E|last(e)=∅)
2 create an element version v0, where v0 specifies the initial state of e
3 define the existence of e by setting v0 to type Existent
Rule 5: Remove obsolete versions and operations of model elements
1 Trigger: model element e
2 if the model element e has been deleted already (∃v∈V:∧v=last(element(v))∧element(v)∉E)) then
3 delete all editing operations: operation(e) and all element versions: version(e) of the deleted model element e
4 else
5 delete all editing operations: operation(e) and all element versions: version(e) of the model element e except the last version vn: vn = last(e)
6 define the existence of e by setting vn to type Existent
Rule 6: Create property constraint reference by identifier
1 Trigger: element version v
2 forall property constraints p of v do
3 if value(p) contains the identifier of a model element e, where element(v) ≠ e then
4 create a property constraint reference pr pointing from v to the first existing version of e: exist(e)
5 define a logical expression of the type (identifier(pr) = ID) where ID references the identifier of e
6 delete p
Listing 4. Possible Constraints based on the same demonstration
1 a.name == b.name
2 a.name == “Factory” && b.name == “Factory”
3 a.name.startsWith(“Fac”) && b.name.endsWith(“tory”)
4 a.name.startsWith(“Fac”) && b.name == “Factory”
An example based rule definition must therefore aim to find rules that are simple and likely. As there can always be cases where the simple and likely interpretation is not the correct one, manual refinement of rules can be necessary. For example, the rule definer might have wanted to demonstrate rule number 3 of Listing 4, but since rule number 1 is simpler it will generally be preferred. Furthermore, a single example defines a very specific chronological order between all editing operations. As a large number of highly different demonstrations would be necessary to determine relevant sequence constraints, those must be excluded from our automatic detection. For the activity “Extracting attribute as class”, all of the relevant ID equivalencies and name equivalencies will be detected. But there is no way to know from a single example if any of the detected equivalencies are false positives. An interesting extension would be keeping some of the demonstrations to check whether a refinement done in the next step would lead to a contradiction.
5.3 Step 2: Manually refining the activity definition
In the second step of the process, the user manually refines the initial activity definition generated in Step 1. This step is required to generalize the activity definition and to add information that cannot be derived automatically. Refinements that need to be applied are of three generic types discussed below.
Edit constraints
Refinements can be done in order to (1) add additional property constraints that have not been captured during demonstration, to (2) relax or extend constraints that have been captured already, and to (3) add sequence constraints that restrict the order of editing operations for performing an activity if necessary. For example, during the demonstration of the activity in Fig 1, an editing operation referred to the modification of the associations’ subtype into aggregation, but the intention of the user is to also allow the subtype composition for this activity. To do this refinement, the user needs to extend the existing constraint SubType = aggregation into SubType = aggregation, composition (see Fig 12, RI).
Define completion defaults
Completion actions are automatically retrieved from specified editing operations and the property constraints of their resulting element versions (see Section 4). Additionally, the user can define completion defaults that ensure desired values of element properties after the auto-completion of a modeling activity. Referring to the previous example, when allowing two options for the association subtype, a completion default could define which subtype is used when auto-completing the activity (Fig 12, RII).
Merge captured editing operations
In the demonstration phase, an editing operation is captured for each performed and accepted modification of a model element. If a user edits the properties of an element in a chain of subsequent edits, multiple element versions are created for a model element. For recognizing and auto-completing the modeling activity, often not all captured editing operations and element versions are required. Multiple sequentially performed modify operations on the same model element can be merged into a single editing operation and resulting element version, defining all required constraints in one place. For example, if the user demonstrates the modification of the association by two editing operations, modifying the subtype and modifying the navigability, these can be merged into a single operation as shown in Fig 12.
5.4 Step 3: Generating event-processing rules
In the third processing step, a refined activity definition is transformed into event-processing rules that can be evaluated by a rule engine. This is necessary because our visual language cannot be understood by a CEP engine like Drools or Esper directly. The transformation is done in two stages. The first stage can be regarded as a preprocessing where implicit information is defined explicitly which is required for correctly working event patterns. This preprocessing is done automatically as follows.
Type constraints
In the visual language, information about element types is captured in the label of a swim lane. In the textual representation, these type restrictions have to be specified explicitly to ensure a correct recognition of model elements. Rule 7 creates a type constraint for the first existing version of each model element.
Rule 7: Create model element type constraints
1 Trigger: model element e
2 retrieve an element version v, where v is the first existing version of e (v = exist(e))
3 define a property constraint of the type (Type = type(e)) for v
Connecting element versions
Element versions that refer to the same model element are grouped into a swim lane in the visual representation. This grouping requires extra effort in the textual notation. Therefore, Rule 8 adds ID-equality constraints to all versions of a model element.
Rule 8: Bind element versions of a model element
1 Trigger: element versions v of a model element e (v∈V,e∈E|v=version(e))
2 retrieve an element version v0, where v0 is the first existing version of e (v0 = exist(e))
3 forall previous element versions w ≠ v0 of v do
4 cretae a property constraint reference pointing from w to v0
5 define a logical expression of the type (ID = ID) expressing the equality of the model elements: element(v0) = element(w)
Preventing multi-matching
An activity may contain multiple add operations for elements of the same type, e.g., creating new classes. It is essential to ensure that the first editing operation cannot match multiple times. Rule 9 adds an ID-inequality constraint requesting that the identifiers of such model elements are different.
Rule 9: Differentiate model elements of the same type
1 Trigger: element version v resulting from editing operation o on an model element e of the type add: (v∈V,o∈O,e∈E|o=add(e)∧v=version(e))
2 if the value of the property constraint Type of v is equal to the value of an element version vj: value(type(v)) = value(type(vj)), where element(v) ≠ element(vj) then
3 create a property constraint reference pointing from v to vj
4 define a logical term of the type (ID ≠ ID) expressing the inequality of the model elements: element(v) ≠ element(vj)
Rule 10: Create sequence constraints to add-operations
1 Trigger: editing operation o
2 retrieve all element versions v of V, where type of v is Existent (type(v) = Existent)
3 if the operation type of o is add type(oi)) = add then
4 forall element versions vj of v do
5 create a property constraint reference pointing from o to vj
6 define a logical expression of the type (TimeStamp > Created) expressing that o must be performed after vj was created
Sequence constraints
Sequence constraints are required to ensure that preexisting model elements were not created after editing operations of the activity already took place. Rule 10 adds a sequence constraint between all add-operations and the preexisting elements of a modeling activity.
In the second stage, a model-to-text transformation uses the preprocessed activity definition as input for generating event-processing rules. This transformation is platform-specific and will not be discussed here. A variety of event-processing rule engines may be utilized for recognizing modeling activities.
6 Evaluation
We decided to perform a comparative user study of VisPaRec. As a baseline for comparison, we selected the textual language Rapide. As the benefit of by-demonstration approaches in general has been already studied by other authors [25], we decided to restrict our study to the evaluation of VisPaRec in comparison to Rapide.
In this user experiment, we aim to answer the following research questions:
- RQ1
How well can a user comprehend VisPaRec’s visual activity definitions in contrast to Rapide’s textual definitions? (Comprehensibility)
- RQ2
Does the use of VisPaRec result in a faster and more correct definition of modeling activities compared to Rapide’s textual definitions? (Applicability)
- RQ3
How do users judge the usability of VisPaRec in contrast to textual Rapide definitions? (Usability)
6.1 Choice of a baseline event processing language
All above discussed event processing languages are suitable for defining modeling activities (cp. Section 2 and 4.3). Both Strelka, as well as MEdit4CEP, display a large number of model elements, even for the reduced example. This is problematic because we intend to use practically relevant refactorings for the study, which are much more extensive. Based on that we doubt that the activity definition in any of the two languages scales well in space and visual complexity. We settled for a textual language as baseline for the following reasons: First, textual languages are the more standard way to work with CEP, given that many tools like Drools and Esper do not support visual languages. Second, tasks of a moderate complexity level still fit into a manageable amount of space being roughly a standard letter size.
Considering the three presented textual languages, we found that pattern definitions are rather similar syntactically (cp. Listing 1,2, and 3). We found the most noticeable syntactical difference within the event sequencing of Esper EPL. For our presented auto-completion application, the very explicit sequencing quickly resulted in complicated nested sequencing constructs. Based on that, we argue that Esper EPL will be more difficult to deal with than the sequencing syntax of Rapide and DRL.
Besides this, their largest syntactical differences lying within language parts that are not relevant to our modeling approach. Especially DRL and Rapide were very close for the given example. As Rapide is somewhat closer to natural language than the other discussed EPLs, we considered it the easier language to explain to a user who is not a CEP expert. It is also not bound to a certain rule engine or project. We do have substantial experience in writing readable Rapide code, as we used it to formulate patterns for our auto-completion prototype, which was implemented before we designed VisPaRec. We therefore decided to compare VisPaRec with Rapide.
6.2 Experimental set-up
Subjects
The participants comprised 16 researchers, PhD students, and masters students experienced in software engineering and knowledgeable in model-based development with UML. All of them were studying or working at the TU Ilmenau and had a computer science background. We recruited them through an email to university-wide mailing lists. Participants had 4 years of software and system development experience on average. Their self-proclaimed skill level ranged from low to very high, with an average of 2.4 on a scale from 0 to 4. The participants had much less experience with complex event processing, averaging at 0.75 years. No participant answered to have a very high skill level, and only a single participant had a high skill level in complex event processing. The study took place from April 21 to May 5, 2015. We recruited researchers and PhD students through an open call at the faculty of computer science. We also invited students attending our software engineering classes. In this way, we approached about 100 researchers and about 50 students. We required the participants to have experience in software development or complex event processing. There were no dropouts during the study. Verbal informed consent was obtained from all participants. Ethics approval was waived by the Vice President for Research of the Technical University of Ilmenau as the responsible department.
Procedure
The experiment was controlled using a computer that presented instructions and recorded times for completing tasks. The computer was configured into a kiosk mode preventing participants from leaving the experimental software. Participants’ answers were gathered on a paper-based questionnaire and in a structured debriefing interview where the interviewer recorded participants’ answers. First, participants filled-in an initial part on the questionnaire that inquired about a subject’s experience and skill level in system and software development, model-based development, UML modeling and complex event processing. Second, each participant was asked to study the extensive tutorial on defining modeling activities textually and visually in Rapide and VisPaRec. Third, participants were given two different activity specifications, one in Rapide and one in VisPaRec, and had to answer six questions that required understanding these specifications. Fourth, each participant had to specify an activity pattern from scratch and had to refine another one. Fifth, in a structured interview we asked subjects to rate the usability of VisPaRec’s seven definition concepts (cp. Section 4.1) in contrast to their representation in Rapide. Sixth, subjects were structurally interviewed by the experimenter about their impressions and comments regarding the visual definition language and the experiment in general. Each interview sequentially inquired about the seven concepts C1–C7 (cp. Section 4.1) and how difficult a participant perceived their comprehension and application in both notations. We used the interview guide contained in the supplementary material. Seventh, we asked participants for general feedback and improvement ideas.
Tasks
The experiment comprised VisPaRec and Rapide definitions of four common modeling activities: “Extracting attribute into class” (also seen in Fig 12), “Resolving many-to-many association”, “Replacing association by interface”, and “Resolving association class”. These patterns describe typical model refactorings, using five up to eight different model elements to be edited zero to two times. Therefore, they generate multiple element versions related to the same model element. Participants were given seven questions and four corresponding multiple-choice statements per question and asked to check the correct statements. The questions R1–R6 dealt with deriving the number of model elements, identifying the number of model elements existing at the start and end of the pattern, identifying and classifying the editing operations, detailing whether specific elements had certain completion actions, recognizing connections between model elements as well as understanding property constraints. These tasks aimed to establish an appropriate background knowledge of the textual as well as the visual representation before applying these notations in two tasks W1 and W2. While W1 required to construct an activity definition, W2 asked for the modification of an existing definition.
Participant’s tasks and VisPaRec’s main design decisions (see Section 4.1) are related as follows:
- R1
is directly influenced by the swim lane concept, so is R2.
- R3
asks for the type of editing operations and therefore interacts with the decision to encode the types visually.
- R4
interacts with properties, sequencing, swim lanes and editing operation types.
- R5
asks participants about property constraints, editing operations (default values) and swim lanes.
- R6
interacts with all of the design choices, as it requires the participants to understand editing types, properties, sequencing and their life cycle.
In the same manner, the writing tasks W1 and W2 require interaction with all of the presented decisions.
In all tasks, the duration was dominated by the effort to understand and solve the problem, not by the physical actions made. This is due to the tasks being difficult but not requiring a lot of actions to complete: R1–R4 each required the ticking of a box, R5 and R6 required to tick two boxes. W1 is the task with the most physical effort by far, requiring the participants to finish a started activity definition. One group was required to write up to 600 characters while the other group drew a small diagram of less than 20 elements as well as less than 15 connections between them. The task W2 only required correcting a given activity definition by striking and correcting the parts participants saw as incorrect. Therefore, the amount of writing work does not have a substantial influence on the duration of tasks.
Treatments and measures
The experiment had one independent variable, the definition language, and two treatments, the visual and the textual representation of an activity definition in VisPaRec and Rapide, respectively. Subjects were randomly assigned to one of two groups. The comprehension tasks (R1–R6) always were related to a visual or a textual pattern definition. One group answered questions R1, R3 and R5 for the visual definition in VisPaRec and the other questions regarding the definition in Rapide, while the second group answered R1, R3 and R5 for the definition in Rapide and the remaining for the visual definition in VisPaRec. For the application tasks, the first group performed W1 using Rapide and W2 using VisPaRec, while the other group did W2 using VisPaRec and W1 using Rapide. The comprehensibility and applicability were measured quantitatively in terms of time to solve a task and correctness of the result. We assessed usability qualitatively within structured interviews, where participants were asked for a comparative rating of activity definition concepts on a Likert scale from 1 (very hard) to 4 (very easy).
6.3 Results and discussion
Comprehensibility (RQ1)
Table 2 shows the results that participants achieved in the six comprehension tasks for the textual as well as the visual language. The results of a two-tailed t-test with independent samples and unequal variances are shown on the right. The upper part of the table shows the average time needed to perform the tasks, while the lower part shows the achieved correctness. The average correctness for participants working with VisPaRec was 72.0% and 60.8% for those working with Rapide. The time needed varied greatly between questions and methods. On average, comprehending VisPaRec activity patterns was 22.5% faster than comprehending their Rapide equivalent. However, there are two questions that were answered wrong more often by participants using VisPaRec than by those using Rapide (R1 and R3). These were also the questions where participants had the highest time saving using VisPaRec. We hypothesize that there is in fact a time-correctness trade off. R1 and R3 simply ask the participants to count model elements/editing operations, therefore they might have seemed misleadingly easy and participants may have jumped to a conclusion too fast. The textual description of Rapide may have forced participants to examine the activity patterns more closely, giving them more time to think about the question as a side effect. Overall, participants working with VisPaRec worked faster and more accurate on average. We suppose that the main reason for improvement is the lifeline concept, because it displays clearly which element versions belong to the same model element. This information is rather hard to grasp without lifelines, because the user must follow a chain of ID-equivalencies to group the different element versions together.
Tab. 2. Average time spent and correctness achieved in performing the comprehension tasks R1–R6. Applicability (RQ2)
Table 3 shows mean, standard deviation, difference in percent, effect significance and the results of a two-tailed t-test with independent samples and unequal variances for both application tasks and notations. The upper part of the table shows the average time that participants spent on solving the task, while the lower part shows the achieved correctness. Constructing activity definitions fully manually (task W1) is not the intended use case of our visual definition language, as the demonstration step can create an initial definition (see Section 5.1). However, W1 was intended to allow for a direct comparison with the writing of definitions in Rapide. Defining the described modeling activity in VisPaRec reduced the required time significantly, on average by 43% (cp. Table 3). Task W2 required participants to understand a given activity definition and to modify certain editing operations and related information. This understanding and adjusting is a common use case especially when creating definitions by example. In this task, subjects working with VisPaRec were on average 47% faster than subjects working with Rapide. These results show that the use of VisPaRec can reduce the time for defining and editing modeling activities significantly. Concerning the correctness, no significant effect could be determined. Table 3 shows that subjects achieved on average almost equal correctness results with both methods. A possible reason could be that all subjects where new to the definition of event patterns for recognizing modeling activities. The measured incorrectness may rather reflect a missing familiarity with the topic than a difference in the two representations. This part of the research question can only be answered properly in a more extensive long-term study.
Tab. 3. Average time spent and correctness achieved in performing the application tasks W1 and W2. Usability (RQ3)
Table 4 aggregates users’ qualitative ratings of VisPaRec’s seven core concepts in contrast to their representation in Rapide in terms of usability (cp. Section 4.1). The results of a two-tailed t-test with independent samples and unequal variances are shown on the right. Participants rated each concept on a Likert scale from 1 (very hard) to 4 (very easy). The visual representation of model elements (C1) significantly effects the comprehensibility (cp. Table 4). Finding out what elements are comprised in a modeling activity using VisPaRec’s representation was rated as very easy. In contrast, subjects reported that performing this task in Rapide is very hard because information about model elements must be retrieved by understanding textual constraint statements. A similar effect is visible for element versions (C2). This is understandable because comprehending the Rapide representation requires resolving references in mind to find out which versions elements undergo throughout an activity. Especially the visual grouping of evolving element versions into one element swim lane was reported as highly beneficial by most subjects. The comprehension of (C3) was reported as very easy in VisPaRec, but also as easy in Rapide. This is much less of a difference than regarding C1 und C2. We hypothesize that the reason for this finding may be that a well structured textual definition makes it easy to find the operation types “add”,“modify” and “delete”.
Tab. 4. Usability of activity definition concepts (cp. Section 4). Nevertheless, subjects liked the clearly distinguishable visual representation of editing operations. Also not significant was the effect of VisPaRec’s visual representation of property constraints (C4). One reason is that static property constraints are represented textually in both Rapide and VisPaRec, and thus the representations are rather similar. Another reason is the representation of dynamic constraints as connectors. Subjects liked to see what model elements are related instead of resolving textual references but struggled initially with tracing the connectors from source to target. This was reported as a question of familiarization. In addition, suggestions were made to support the usage of connectors in active editors through highlighting and out-fading on “mouse-over”. This was also mentioned for sequence constraints (C5). In contrast, subjects rated the Rapide representation of sequence constraints as hard to understand. On average, completion actions (C6) were rated to be easily comprehensible in VisPaRec, but hard to understand in Rapide. It can be seen in Table 4 that both ratings have a high standard deviation, meaning that subject had very different views on it. While some subjects liked to be able to automatically retrieve completion actions, reducing redundant information, the other part liked the clear overview of writing down completion actions explicitly. We believe that eliminating redundant information in an activity definition can reduce error-proneness in the long run. Completion defaults (C7) were understood very easily in VisPaRec. The visualization of completion defaults separated from property constraints was reported as very beneficial. In contrast, defining them textually within completion actions makes it hard to distinguish between conditional and default values. When we asked participants whether they prefer reading textual languages or visual languages in general, 94% of the participants preferred reading visual activity definitions, 84% of participants preferred writing visual activity definitions over textual ones. Participants also gave us valuable feedback for future iterations of the language. Most feedback referred to visual details, e.g., one participant found the orange color of time constraints rather close to the red we use for deletion operations, while another participant advised to make the arrow starting symbols more clear in favor of color blind users. Participants also envisioned VisPaRec to be supported by active editor features, like sorting swim lanes by type and collapsing swim lanes as well as element version stacks.
6.4 Limitations
The experiment aimed to evaluate VisPaRec in comparison to the generic textual language Rapide for defining complex event-processing rules. We chose Rapide as a platform-independent textual definition language for the reasons elaborated in Section 6.1. While the fundamental concepts of CEP are represented across all event-processing languages, we cannot claim that our results are generalizable across all those languages, even though we do not expect substantially different results regarding different general purpose EPLs. Still, this can only be confirmed by further experiments to study other languages. Additionally, our visual language should be also compared to a textual domain specific language which is specialized for the definition of activity patterns. As we are not aware of any language specifically built for this domain, such a comparison is impossible at this time. We consider engineers, working in a model-driven software and systems development process as main audience for the proposed approach. Therefore, we requested that subjects participating in our experiment had to fit this role. All subjects had a mature level of education and at least some experience in model-driven development and UML modeling. The tasks used in the experiment were based on modeling activities commonly known from literature and often occurring in practice. However, the low number of data points does not allow to draw general conclusions. To ensure that subjects had a consistent fundamental knowledge in concepts of the experiment, we asked all subjects to work through an extensive tutorial that also included different comprehension tasks. We expect that replications of the experiment under the described conditions will offer similar results, leading to similar findings. For that purpose, we provide our material in a replication package (accessible at https://dataverse.harvard.edu/dataset.xhtml?persistentId=doi%3A10.7910%2FDVN%2FFTPF3Z).
7 Conclusions and future work
This paper proposed a novel way to define event-processing rules for recognizing and auto-completing modeling activities during model-driven software and systems development. By using VisPaRec, event-patterns and corresponding completion actions can be graphically modeled instead of written as textual patterns. Along with this visual language, we proposed a three-step semi-automated activity definition process. This process builds upon a by-example step that provides the user with an initial activity definition to be refined. After manual refinement, required event-processing rules can then be automatically generated. A user experiment showed that participants achieved on average higher correctness in less time when asked to understand visual activity definitions and were able to define and edit activities in significantly less time (-43%, -47%) at comparable correctness. When asked about the usability of the approach, participants rated the visual activity definitions as easy to very easy to understand in contrast to the textual baseline definition language Rapide. Almost every participant (94%) preferred reading visual activity definitions over textual. Although we embed the language into a by-example approach, 81% of the participants would also prefer writing visual definitions in a solely manual manner. The approach has been implemented as an add-in to the Sparx Enterprise Architect modeling tool [34]. Screenshots of the definition process are part of the supplementary material. Interviews with study participants provided various ideas for additional supporting functionality in this process.
Future work will comprise the evaluation of the prototype in a larger industrial study to gain more results, especially concerning the capability of reducing error-proneness. Another interesting extension point would be an evaluation of the applicability of VisPaRec’s main design choices to general-purpose CEP languages. The concept of special time and ordering constraints may be applicable as-is. However, the concept of swim lanes most likely needs to be generalized in order to support other attributes than object identification and to be useful in different scenarios. Regarding the activity definition by example, presumably higher accuracy can be achieved through the use of multiple demonstrations. We currently evaluate graph-based methods in order to support an arbitrarily amount of definitions and make the method more flexible. Another possibility is to implement VisPaRec as an interactive editor that could supply dynamic features, such as those desired by some participants of our study.
Zdroje
1. Foster SR, Griswold WG, Lerner S. WitchDoctor: IDE support for real-time auto-completion of refactorings. In: Software Engineering (ICSE), 2012 34th International Conference on. ICSE 2012. Piscataway, NJ, USA: IEEE Press; 2012. p. 222–232.
2. Sen S, Baudry B, Vangheluwe H. Towards domain-specific model editors with automatic model completion. Simulation. 2010;86(2):109–126. doi: 10.1177/0037549709340530
3. Born M, Brelage C, Markovic I, Pfeiffer D, Weber I. Auto-completion for Executable Business Process Models. In: Ardagna D, Mecella M, Yang J, editors. Business Process Management Workshops. vol. 17 of Lecture Notes in Business Information Processing. Springer Berlin Heidelberg; 2009. p. 510–515.
4. Mazanek S, Minas M. Business Process Models as a Showcase for Syntax-Based Assistance in Diagram Editors. In: Schürr A, Selic B, editors. Model Driven Engineering Languages and Systems. vol. 5795 of Lecture Notes in Computer Science. Springer; 2009. p. 322–336.
5. Koschmider A, Hornung T, Oberweis A. Recommendation-based editor for business process modeling. Data & Knowledge Engineering. 2011;70(6):483–503. doi: 10.1016/j.datak.2011.02.002
6. Luckham DC. The power of events: an introduction to complex event processing in distributed enterprise systems. Addison-Wesley; 2002.
7. Mäder P, Gotel O. Towards automated traceability maintenance. Journal of Systems and Software. 2012;85(10):2205–2227. doi: 10.1016/j.jss.2011.10.023 23471308
8. Mäder P, Cleland-Huang J. A visual traceability modeling language. In: International Conference on Model Driven Engineering Languages and Systems. Springer; 2010. p. 226–240.
9. Mäder P, Cleland-Huang J. A visual language for modeling and executing traceability queries. Software & Systems Modeling. 2013;12(3):537–553. doi: 10.1007/s10270-012-0237-0
10. Rath M, Akehurst D, Borowski C, Mäder P. Are graph query languages applicable for requirements traceability analysis? In: REFSQ Workshops; 2017.
11. Kuschke T, Mäder P, Rempel P. Recommending Auto-completions for Software Modeling Activities. In: Moreira A, Schätz B, Gray J, Vallecillo A, Clarke P, editors. Model-Driven Engineering Languages and Systems. vol. 8107 of Lecture Notes in Computer Science. Springer Berlin Heidelberg; 2013. p. 170–186.
12. Kuschke T, Mäder P. Pattern-based auto-completion of UML modeling activities. In: ACM/IEEE International Conference on Automated Software Engineering, ASE '14, Vasteras, Sweden—September 15—19, 2014; 2014. p. 551–556.
13. Kuschke T. Auto-completion Assistance for UML Modeling Activities. Technical University of Ilmenau; 2015.
14. Mäder P, Kuschke T, Janke M. Reactive Auto-completion of Modeling Activities. IEEE Transactions on Software Engineering. 2019.
15. Eckert M, Bry F, Brodt S, Poppe O, Hausmann S. A CEP babelfish: languages for Complex Event Processing and querying surveyed. In: Reasoning in Event-Based Distributed Systems. Springer; 2011. p. 47–70.
16. Luckham DC, Vera J. An event-based architecture definition language. IEEE transactions on Software Engineering. 1995;21(9):717–734. doi: 10.1109/32.464548
17. Luckham DC. Rapide: A Language and Toolset for Simulation of Distributed Systems by Partial Orderings of Events. 1996.
18. Proctor M. Drools: a rule engine for complex event processing. In: Proceedings of the 4th international conference on Applications of Graph Transformations with Industrial Relevance. Springer-Verlag; 2011. p. 2–2.
19. Red Hat. Drools Fusion for complex event processing; 2015. Available from: http://www.jboss.org/drools.
20. EsperTech Inc. Drools Fusion for complex event processing; 2019. Available from: http://esper.espertech.com/.
21. NRA France. SocEDA—CEP Editor;. Available from: https://www.soceda.org/display/soceda/CEP+Editor.
22. Nowak M, Bak J, Jedrzejek C. Graph-based Rule Editor. RuleML2012@ ECAI Challenge and Doctoral Consortium at the 6th International Symposium on Rules, Montpellier, France; 2012.
23. REWERSE Working Group I1. Strelka—An URML-Based Visual Rule Modeling Tool; 2008. Available from: http://oxygen.informatik.tu-cottbus.de/rewerse-i1/?q=Strelka.
24. Boubeta-Puig J, Ortiz G, Medina-Bulo I. A model-driven approach for facilitating user-friendly design of complex event patterns. Expert Systems with Applications. 2014;41(2):445–456. doi: 10.1016/j.eswa.2013.07.070
25. Sun Y, Gray J, White J. A demonstration-based model transformation approach to automate model scalability. Software & Systems Modeling. 2013; p. 1–27.
26. Sun Y, Gray J, Langer P, Kappel G, Wimmer M, White J. A WYSIWYG Approach to Support Layout Configuration in Model Evolution. Emerging Technologies for the Evolution and Maintenance of Software Models. 2012; p. 92–120. doi: 10.4018/978-1-61350-438-3.ch004
27. Biermann E, Ehrig K, K ohler C, Kuhns G, T antzer G, Weiss E. Graphical Definition of In-Place Transformations in the Eclipse Modeling Framework. In: Nierstrasz O, Whittle J, Harel D, Reggio G, editors. Model Driven Engineering Languages and Systems. vol. 4199 of LNCS. Springer; 2006. p. 425–439.
28. Arendt T, Biermann E, Jurack S, Krause C, Taentzer G. Henshin: Advanced Concepts and Tools for In-Place EMF Model Transformations. In: MoDELS (1); 2010. p. 121–135.
29. Fischer T, Niere J, Torunski L, Zündorf A. Story diagrams: A new graph rewrite language based on the unified modeling language and java. In: International Workshop on Theory and Application of Graph Transformations. Springer; 1998. p. 296–309.
30. Raza M, Gulwani S, Milic-Frayling N. Programming by Example Using Least General Generalizations. In: AAAI; 2014. p. 283–290.
31. Fowler M. Refactoring: improving the design of existing code. 19th ed. ISBN 0-201-48567-2. Addison-Wesley; 2006.
32. Moody DL. The “Physics” of Notations: Toward a Scientific Basis for Constructing Visual Notations in Software Engineering. Software Engineering, IEEE Transactions on. 2009;35(6):756–779. doi: 10.1109/TSE.2009.67
33. Group SUPAV. The Stanford Rapide Project;. Available from: http://complexevents.com/stanford/rapide/.
34. Sparx Systems. Enterprise Architect: A model driven UML tool suite; 2015. Available from: http://www.sparxsystems.com.
Článek Disparate effects of antibiotic-induced microbiome change and enhanced fitness in Daphnia magnaČlánek Effects of Transcranial Direct Current Stimulation on GABA and Glx in Children: A pilot studyČlánek Patient perceived value of teleophthalmology in an urban, low income US population with diabetesČlánek A study to better understand under-utilization of laboratory tests for antenatal care in SenegalČlánek Role of ecology in shaping external nasal morphology in bats and implications for olfactory trackingČlánek Influence of light on the infection of Aureococcus anophagefferens CCMP 1984 by a “giant virus”Článek A network analysis revealed the essential and common downstream proteins related to inguinal herniaČlánek Eye-gaze information input based on pupillary response to visual stimulus with luminance modulationČlánek Analysis of attitudinal components towards statistics among students from different academic degreesČlánek Forecasting stock prices with long-short term memory neural network based on attention mechanismČlánek Transcriptome analysis of Actinidia chinensis in response to Botryosphaeria dothidea infectionČlánek The virulence domain of Shigella IcsA contains a subregion with specific host cell adhesion functionČlánek Characterization of black patina from the Tiber River embankments using Next-Generation SequencingČlánek Regional versus local wind speed and direction at a narrow beach with a high and steep foreduneČlánek Design and evaluation of a laboratory-based wheelchair castor testing protocol using community dataČlánek Effects of Allium hookeri on gut microbiome related to growth performance in young broiler chickensČlánek Identification and characterization of miRNAs involved in cold acclimation of zebrafish ZF4 cellsČlánek Research on motion planning for an indoor spray arm based on an improved potential field methodČlánek Disruption in daily eating-fasting and activity-rest cycles in Indian adolescents attending schoolČlánek Umbilical cord separation time, predictors and healing complications in newborns with dry careČlánek Comparison of Monocyte Distribution Width (MDW) and Procalcitonin for early recognition of sepsis
Článok vyšiel v časopisePLOS One
Najčítanejšie tento týždeň
2020 Číslo 1- Metamizol jako analgetikum první volby: kdy, pro koho, jak a proč?
- Nejasný stín na plicích – kazuistika
- Masturbační chování žen v ČR − dotazníková studie
- Kombinace metamizol/paracetamol v léčbě pooperační bolesti u zákroků v rámci jednodenní chirurgie
- Představa veřejnosti o rezistenci na antibiotika je často mimo realitu − výsledky průzkumu WHO
-
Všetky články tohto čísla
- ETAPOD: A forecast model for prediction of black pod disease outbreak in Nigeria
- Disparate effects of antibiotic-induced microbiome change and enhanced fitness in Daphnia magna
- Deliver on Your Own: Disrespectful Maternity Care in rural Kenya
- Number of days required to estimate physical activity constructs objectively measured in different age groups: Findings from three Brazilian (Pelotas) population-based birth cohorts
- Exploring the mechanism of olfactory recognition in the initial stage by modeling the emission spectrum of electron transfer
- Risk of complications among diabetics self-reporting oral health status in Canada: A population-based cohort study
- Practical considerations in the use of a porcine model (Sus scrofa domesticus) to assess prevention of postoperative peritubal adhesions
- Transcriptional Differences in Peanut (Arachis hypogaea L.) Seeds at the Freshly Harvested, After-ripening and Newly Germinated Seed Stages: Insights into the Regulatory Networks of Seed Dormancy Release and Germination
- Identifying maintenance hosts for infection with Dichelobacter nodosus in free-ranging wild ruminants in Switzerland: A prevalence study
- Model order reduction for left ventricular mechanics via congruency training
- Production, purification and evaluation of biodegradation potential of PHB depolymerase of Stenotrophomonas sp. RZS7
- The impact of a wireless audio system on communication in robotic-assisted laparoscopic surgery: A prospective controlled trial
- Seroprevalence of viral and vector-borne bacterial pathogens in domestic dogs (Canis familiaris) in northern Botswana
- Musical expertise generalizes to superior temporal scaling in a Morse code tapping task
- Cross-cultural adaptation and psychometric evaluation of the Yoruba version of Oswestry disability index
- Post-transcriptional regulation of Rad51c by miR-222 contributes cellular transformation
- Can scientists fill the science journalism void? Online public engagement with science stories authored by scientists
- Retention and predictors of attrition among patients who started antiretroviral therapy in Zimbabwe’s national antiretroviral therapy programme between 2012 and 2015
- Prognostics for pain in osteoarthritis: Do clinical measures predict pain after total joint replacement?
- Effects of Transcranial Direct Current Stimulation on GABA and Glx in Children: A pilot study
- Evaluation of rice wild relatives as a source of traits for adaptation to iron toxicity and enhanced grain quality
- Brief communication: Long-term absence of Langerhans cells alters the gene expression profile of keratinocytes and dendritic epidermal T cells
- APOBEC3B reporter myeloma cell lines identify DNA damage response pathways leading to APOBEC3B expression
- Morphological diversity within a core collection of subterranean clover (Trifolium subterraneum L.): Lessons in pasture adaptation from the wild
- Feasibility of real-time in vivo 89Zr-DFO-labeled CAR T-cell trafficking using PET imaging
- Repository-based plasmid design
- A new method of recording from the giant fiber of Drosophila melanogaster shows that the strength of its auditory inputs remains constant with age
- Aberrant cervical innate immunity predicts onset of dysbiosis and sexually transmitted infections in women of reproductive age
- Safe mobility, socioeconomic inequalities, and aging: A 12-year multilevel interrupted time-series analysis of road traffic death rates in a Latin American country
- THAP11F80L cobalamin disorder-associated mutation reveals normal and pathogenic THAP11 functions in gene expression and cell proliferation
- Lesion of striatal patches disrupts habitual behaviors and increases behavioral variability
- A clinical method for estimating the modulus of elasticity of the human cornea in vivo
- Patient perceived value of teleophthalmology in an urban, low income US population with diabetes
- Evidence in support of chromosomal sex influencing plasma based metabolome vs APOE genotype influencing brain metabolome profile in humanized APOE male and female mice
- Accelerated sparsity based reconstruction of compressively sensed multichannel EEG signals
- Microvesicles from Lactobacillus reuteri (DSM-17938) completely reproduce modulation of gut motility by bacteria in mice
- Dense carbon-nanotube coating scaffolds stimulate osteogenic differentiation of mesenchymal stem cells
- Gamma Knife radiosurgery for vestibular schwannomas: Evaluation of planning using the sphericity degree of the target volume
- Purification and molecular characterization of phospholipase, antigen 5 and hyaluronidases from the venom of the Asian hornet (Vespa velutina)
- Why are animal source foods rarely consumed by 6-23 months old children in rural communities of Northern Ethiopia? A qualitative study
- A study to better understand under-utilization of laboratory tests for antenatal care in Senegal
- Physicians’ perspectives regarding non-medical switching of prescription medications: Results of an internet e-survey
- Effectiveness of information technology–enabled ‘SMART Eating’ health promotion intervention: A cluster randomized controlled trial
- Cauda Equina Syndrome Core Outcome Set (CESCOS): An international patient and healthcare professional consensus for research studies
- A new species of Macrocypraea (Gastropoda, Cypraeidae) from Trindade Island, Brazil, including phenotypic differentiation from remaining congeneric species
- Long term conjugated linoleic acid supplementation modestly improved growth performance but induced testicular tissue apoptosis and reduced sperm quality in male rabbit
- A new approach to the temporal significance of house orientations in European Early Neolithic settlements
- Persistence of chikungunya ECSA genotype and local outbreak in an upper medium class neighborhood in Northeast Brazil
- In vivo elongation of thin filaments results in heart failure
- Disparity in depressive symptoms between heterosexual and sexual minority men in China: The role of social support
- Effect of classroom intervention on student food selection and plate waste: Evidence from a randomized control trial
- Mating strategy is determinant of adenovirus prevalence in European bats
- Preventing HIV and HSV-2 through knowledge and attitudes: A replication study of a multi-component community-based intervention in Zimbabwe
- Randomized clinical trial analyzing maintenance of peripheral venous catheters in an internal medicine unit: Heparin vs. saline
- Patient-related factors may influence nursing perception of sleep in the Intensive Care Unit
- A randomized trial of a behavioral intervention to decrease hospital length of stay by decreasing bedrest
- Color image segmentation using adaptive hierarchical-histogram thresholding
- The role of demographic history and selection in shaping genetic diversity of the Galápagos penguin (Spheniscus mendiculus)
- Attitudes towards animal study registries and their characteristics: An online survey of three cohorts of animal researchers
- Risk perception and behavioral change during epidemics: Comparing models of individual and collective learning
- Risk factors for third-generation cephalosporin resistant Enterobacteriaceae in gestational urine cultures: A retrospective cohort study based on centralized electronic health records
- Residential neighbourhood greenspace is associated with reduced risk of cardiovascular disease: A prospective cohort study
- Potential socioeconomic impacts from ocean acidification and climate change effects on Atlantic Canadian fisheries
- Prevention and control of cholera with household and community water, sanitation and hygiene (WASH) interventions: A scoping review of current international guidelines
- Female finches prefer courtship signals indicating male vigor and neuromuscular ability
- The effect of spatial position and age within an egg-clutch on embryonic development and key metabolic enzymes in two clownfish species, Amphiprion ocellaris and Amphiprion frenatus
- The impact of translated reminder letters and phone calls on mammography screening booking rates: Two randomised controlled trials
- Application of a genetic algorithm to the keyboard layout problem
- Design and evaluation of a laboratory-based wheelchair castor testing protocol using community data
- Relationship between diabetic macular edema and choroidal layer thickness
- Evaluation of the predictive ability of ultrasound-based assessment of breast cancer using BI-RADS natural language reporting against commercial transcriptome-based tests
- A Comprehensive Data Gathering Network Architecture in Large-Scale Visual Sensor Networks
- Recovery of health-related quality of life after burn injuries: An individual participant data meta-analysis
- Modeling aggressive market order placements with Hawkes factor models
- Role of ecology in shaping external nasal morphology in bats and implications for olfactory tracking
- High expression of olfactomedin-4 is correlated with chemoresistance and poor prognosis in pancreatic cancer
- Development and validation of a prognostic model predicting symptomatic hemorrhagic transformation in acute ischemic stroke at scale in the OHDSI network
- Complex patterns of cell growth in the placenta in normal pregnancy and as adaptations to maternal diet restriction
- Tofu intake is inversely associated with risk of breast cancer: A meta-analysis of observational studies
- Influence of light on the infection of Aureococcus anophagefferens CCMP 1984 by a “giant virus”
- Temporal ordering of input modulates connectivity formation in a developmental neuronal network model of the cortex
- Healthy lifestyle index and its association with hypertension among community adults in Sri Lanka: A cross-sectional study
- From organ to cell: Multi-level telomere length assessment in patients with idiopathic pulmonary fibrosis
- How do critical care staff respond to organisational challenge? A qualitative exploration into personality types and cognitive processing in critical care
- Effects of supplemental creatine and guanidinoacetic acid on spatial memory and the brain of weaned Yucatan miniature pigs
- Community-Based Health Planning and Services Plus programme in Ghana: A qualitative study with stakeholders in two Systems Learning Districts on improving the implementation of primary health care
- An investigation of transportation practices in an Ontario swine system using descriptive network analysis
- Comparison of gridded precipitation datasets for rainfall-runoff and inundation modeling in the Mekong River Basin
- Functional interactions in patients with hemianopia: A graph theory-based connectivity study of resting fMRI signal
- The effects of dual-task cognitive interference on gait and turning in Huntington’s disease
- Effects of Allium hookeri on gut microbiome related to growth performance in young broiler chickens
- Novel imaging biomarkers for mapping the impact of mild mitochondrial uncoupling in the outer retina in vivo
- Hyperkalemia treatment modalities: A descriptive observational study focused on medication and healthcare resource utilization
- Long term impact of PositiveLinks: Clinic-deployed mobile technology to improve engagement with HIV care
- Comparison of post-transplantation diabetes mellitus incidence and risk factors between kidney and liver transplantation patients
- A definition-by-example approach and visual language for activity patterns in engineering disciplines
- A network analysis revealed the essential and common downstream proteins related to inguinal hernia
- Use of conventional cardiac troponin assay for diagnosis of non-ST-elevation myocardial infarction: ‘The Ottawa Troponin Pathway’
- Identification and characterization of miRNAs involved in cold acclimation of zebrafish ZF4 cells
- Research on motion planning for an indoor spray arm based on an improved potential field method
- Detailed analysis of the transverse arch of hallux valgus feet with and without pain using weightbearing ultrasound imaging and precise force sensors
- Surrogate R-spondins for tissue-specific potentiation of Wnt Signaling
- Apolipoprotein-AI mimetic peptides D-4F and L-5F decrease hepatic inflammation and increase insulin sensitivity in C57BL/6 mice
- Treating patients with driving phobia by virtual reality exposure therapy – a pilot study
- Efficient processing of raster and vector data
- Therapeutic hypothermia after out of hospital cardiac arrest improve 1-year survival rate for selective patients
- Carotid plaques and neurological impairment in patients with acute cerebral infarction
- Deep learning based image reconstruction algorithm for limited-angle translational computed tomography
- Association between coffee drinking and telomere length in the Prostate, Lung, Colorectal, and Ovarian Cancer Screening Trial
- Hyperbaric oxygen preconditioning and the role of NADPH oxidase inhibition in postischemic acute kidney injury induced in spontaneously hypertensive rats
- Rad51 paralogs and the risk of unselected breast cancer: A case-control study
- Diagnostic differences in respiratory breathing patterns and work of breathing indices in children with Duchenne muscular dystrophy
- The role of narrative in collaborative reasoning and intelligence analysis: A case study
- Proportions of CD4 test results indicating advanced HIV disease remain consistently high at primary health care facilities across four high HIV burden countries
- Modelling of amino acid turnover in the horse during training and racing: A basis for developing a novel supplementation strategy
- Single-modal and multi-modal false arrhythmia alarm reduction using attention-based convolutional and recurrent neural networks
- Eye-gaze information input based on pupillary response to visual stimulus with luminance modulation
- Trends of litter decomposition and soil organic matter stocks across forested swamp environments of the southeastern US
- Post mortem evaluation of inflammation, oxidative stress, and PPARγ activation in a nonhuman primate model of cardiac sympathetic neurodegeneration
- Were ancient foxes far more carnivorous than recent ones?—Carnassial morphological evidence
- Disruption in daily eating-fasting and activity-rest cycles in Indian adolescents attending school
- Plasma proteome profiling of freshwater and seawater life stages of rainbow trout (Oncorhynchus mykiss)
- Percent amplitude of fluctuation: A simple measure for resting-state fMRI signal at single voxel level
- Antimicrobial activity of Asteraceae species against bacterial pathogens isolated from postmenopausal women
- Are changes in depressive symptoms, general health and residential area socio-economic status associated with trajectories of waist circumference and body mass index?
- Extracellular vesicles of U937 macrophage cell line infected with DENV-2 induce activation in endothelial cells EA.hy926
- Link-centric analysis of variation by demographics in mobile phone communication patterns
- Tobacco smoking and health-related quality of life among university students: Mediating effect of depression
- The Shapley value for a fair division of group discounts for coordinating cooling loads
- Incidence of hospital-acquired pressure ulcers in patients with "minimal risk" according to the "Norton-MI" scale
- Lipoprotein(a) plasma levels are not associated with survival after acute coronary syndromes: An observational cohort study
- Use of Nanotrap particles for the capture and enrichment of Zika, chikungunya and dengue viruses in urine
- Pancreatic secretory trypsin inhibitor reduces multi-organ injury caused by gut ischemia/reperfusion in mice
- Biochemical characterization of Ty1 retrotransposon protease
- Lateral pressure equalisation as a principle for designing support surfaces to prevent deep tissue pressure ulcers
- The validation of the Beijing version of the Montreal Cognitive Assessment in Chinese patients undergoing hemodialysis
- Inflammasome expression is higher in ovarian tumors than in normal ovary
- HCV genotype profile in Brazil of mono-infected and HIV co-infected individuals: A survey representative of an entire country
- Engaging with change: Information and communication technology professionals’ perspectives on change at the mid-point in the UK/EU Brexit process
- Adherence to iron-folic acid supplement and associated factors among antenatal care attending pregnant mothers in governmental health institutions of Adwa town, Tigray, Ethiopia: Cross-sectional study
- Flower, seed, and fruit development in three Tunisian species of Polygonum: Implications for their taxonomy and evolution of distyly in Polygonaceae
- Development of a risk score for prediction of poor treatment outcomes among patients with multidrug-resistant tuberculosis
- Preclinical evaluation of AT-527, a novel guanosine nucleotide prodrug with potent, pan-genotypic activity against hepatitis C virus
- Aqueous extract from Mangifera indica Linn. (Anacardiaceae) leaves exerts long-term hypoglycemic effect, increases insulin sensitivity and plasma insulin levels on diabetic Wistar rats
- Discovery of Jogalong virus, a novel hepacivirus identified in a Culex annulirostris (Skuse) mosquito from the Kimberley region of Western Australia
- Clinical, cytogenetic and molecular genetic characterization of a tandem fusion translocation in a male Holstein cattle with congenital hypospadias and a ventricular septal defect
- Detection of Torque Teno Virus (TTV) and TTV-Like Minivirus in patients with presumed infectious endophthalmitis in India
- CD4 rate of increase is preferred to CD4 threshold for predicting outcomes among virologically suppressed HIV-infected adults on antiretroviral therapy
- Estimating the basic reproduction number of a pathogen in a single host when only a single founder successfully infects
- What drugs modify the risk of iatrogenic impulse-control disorders in Parkinson’s disease? A preliminary pharmacoepidemiologic study
- Evaluating emotional distress and health-related quality of life in patients with heart failure and their family caregivers: Testing dyadic dynamics using the Actor-Partner Interdependence Model
- Community- and trophic-level responses of soil nematodes to removal of a non-native tree at different stages of invasion
- Association of ECG parameters with late gadolinium enhancement and outcome in patients with clinical suspicion of acute or subacute myocarditis referred for CMR imaging
- Catchment-scale export of antibiotic resistance genes and bacteria from an agricultural watershed in central Iowa
- Impact of multi-drug resistant bacteria on economic and clinical outcomes of healthcare-associated infections in adults: Systematic review and meta-analysis
- Characterization of a universal screening approach for congenital CMV infection based on a highly-sensitive, quantitative, multiplex real-time PCR assay
- Proof-of-concept for a non-invasive, portable, and wireless device for cardiovascular monitoring in pediatric patients
- On PTV definition for glioblastoma based on fiber tracking of diffusion tensor imaging data
- Genes associated with body weight gain and feed intake identified by meta-analysis of the mesenteric fat from crossbred beef steers
- Intraoperative computed tomography imaging for dose calculation in intraoperative electron radiation therapy: Initial clinical observations
- Human lung epithelial BEAS-2B cells exhibit characteristics of mesenchymal stem cells
- Simple non-mydriatic retinal photography is feasible and demonstrates retinal microvascular dilation in Chronic Obstructive Pulmonary Disease (COPD)
- Maternal depressive symptoms and children’s cognitive development: Does early childcare and child’s sex matter?
- Evaluation of a bioengineered ACL matrix’s osteointegration with BMP-2 supplementation
- Psychosocial profiles of physical activity fluctuation in office employees: A latent profile analysis
- Prevalence and characteristics of Livestock-Associated Methicillin-Resistant Staphylococcus aureus (LA-MRSA) isolated from chicken meat in the province of Quebec, Canada
- Soluble AXL as a marker of disease progression and survival in melanoma
- Using machine learning methods to determine a typology of patients with HIV-HCV infection to be treated with antivirals
- Gender differences influence over insomnia in Korean population: A cross-sectional study
- Impact of scion/rootstock reciprocal effects on metabolomics of fruit juice and phloem sap in grafted Citrus reticulata
- Adapting cognitive diagnosis computerized adaptive testing item selection rules to traditional item response theory
- Autumn shifts in cold tolerance metabolites in overwintering adult mountain pine beetles
- Umbilical cord separation time, predictors and healing complications in newborns with dry care
- Analysis of attitudinal components towards statistics among students from different academic degrees
- Effects of fatigue induced by repeated-sprint on kicking accuracy and velocity in female soccer players
- A pre-clinical validation plan to evaluate analytical sensitivities of molecular diagnostics such as BD MAX MDR-TB, Xpert MTB/Rif Ultra and FluoroType MTB
- Leadership for success in transforming medical abortion policy in Canada
- Clinical correlates associated with the long-term response of bipolar disorder patients to lithium, valproate or lamotrigine: A retrospective study
- Forecasting stock prices with long-short term memory neural network based on attention mechanism
- On the genus Crossaster (Echinodermata: Asteroidea) and its distribution
- Intracellular and in vivo evaluation of imidazo[2,1-b]thiazole-5-carboxamide anti-tuberculosis compounds
- An integrated vitamin E-coated polymer hybrid nanoplatform: A lucrative option for an enhanced in vitro macrophage retention for an anti-hepatitis B therapeutic prospect
- The effect of strontium and silicon substituted hydroxyapatite electrochemical coatings on bone ingrowth and osseointegration of selective laser sintered porous metal implants
- Molecular prevalence of Bartonella, Babesia, and hemotropic Mycoplasma species in dogs with hemangiosarcoma from across the United States
- Color discrimination and gas chromatography-mass spectrometry fingerprint based on chemometrics analysis for the quality evaluation of Schizonepetae Spica
- Comparisons of recurrence-free survival and overall survival between microwave versus radiofrequency ablation treatment for hepatocellular carcinoma: A multiple centers retrospective cohort study with propensity score matching
- Oral misoprostol, low dose vaginal misoprostol, and vaginal dinoprostone for labor induction: Randomized controlled trial
- The association between dietary patterns before and in early pregnancy and the risk of gestational diabetes mellitus (GDM): Data from the Malaysian SECOST cohort
- Dynamic Extreme Aneuploidy (DEA) in the vegetable pathogen Phytophthora capsici and the potential for rapid asexual evolution
- Assertive, trainable and older dogs are perceived as more dominant in multi-dog households
- Prediction of Uropathogens by Flow Cytometry and Dip-stick Test Results of Urine Through Multivariable Logistic Regression Analysis
- Interleukin 6 is increased in preclinical HNSCC models of acquired cetuximab resistance, but is not required for maintenance of resistance
- Impact of viral disease hypophagia on pig jejunal function and integrity
- Molecular evidence for horizontal transmission of chelonid alphaherpesvirus 5 at green turtle (Chelonia mydas) foraging grounds in Queensland, Australia
- Evaluation and validation of 2D biomechanical models of the knee for radiograph-based preoperative planning in total knee arthroplasty
- Soil-Transmitted Helminth infections reduction in Bhutan: A report of 29 years of deworming
- cagA gene EPIYA motif genetic characterization from Colombian Helicobacter pylori isolates: Standardization of a molecular test for rapid clinical laboratory detection
- Spectral characteristics of urine from patients with end-stage kidney disease analyzed using Raman Chemometric Urinalysis (Rametrix)
- Fast quantitative time lapse displacement imaging of endothelial cell invasion
- Two novel mutations in MSX1 causing oligodontia
- Dome-shaped macula in children and adolescents
- Targeted transcriptomic study of the implication of central metabolic pathways in mannosylerythritol lipids biosynthesis in Pseudozyma antarctica T-34
- Preliminary evidences of the presence of extracellular DNA single stranded forms in soil
- A comparison of quality of life between patients treated with different dialysis modalities in Taiwan
- Comparison of Monocyte Distribution Width (MDW) and Procalcitonin for early recognition of sepsis
- Morphological association between the muscles and bones in the craniofacial region
- Transcriptome analysis of Actinidia chinensis in response to Botryosphaeria dothidea infection
- Comparative study on skin protection activity of polyphenol-rich extract and polysaccharide-rich extract from Sargassum vachellianum
- Real-world data about emotional stress, disability and need for social care in a German IBD patient cohort
- The regenerative compatibility: A synergy between healthy ecosystems, environmental attitudes, and restorative experiences
- Antenatal depression and its association with adverse birth outcomes in low and middle-income countries: A systematic review and meta-analysis
- Perceptions of risk and influences of choice in pregnant women with obesity. An evidence synthesis of qualitative research
- The role of refugee and migrant migration status on medication adherence: Mediation through illness perceptions
- Sexual risk classes among youth experiencing homelessness: Relation to childhood adversities, current mental symptoms, substance use, and HIV testing
- Effects of CK2β subunit down-regulation on Akt signalling in HK-2 renal cells
- Novel broad-spectrum activity-based probes to profile malarial cysteine proteases
- Association between opioid analgesic therapy and initiation of buprenorphine management: An analysis of prescription drug monitoring program data
- Effect of a community-based approach of iron and folic acid supplementation on compliance by pregnant women in Kiambu County, Kenya: A quasi-experimental study
- Improvement project in higher education institutions: A BPEP-based model
- An updated evaluation of serum sHER2, CA15.3, and CEA levels as biomarkers for the response of patients with metastatic breast cancer to trastuzumab-based therapies
- Genome-wide association study of metabolic syndrome in Korean populations
- Drug therapy problems and treatment satisfaction among ambulatory patients with epilepsy in a specialized hospital in Ethiopia
- Plasma kynurenines and prognosis in patients with heart failure
- Occurrence and distribution of anthropogenic persistent organic pollutants in coastal sediments and mud shrimps from the wetland of central Taiwan
- Intensified visual clutter induces increased sympathetic signalling, poorer postural control, and faster torsional eye movements during visual rotation
- Gut microbiota composition alterations are associated with the onset of diabetes in kidney transplant recipients
- Shock index and TIMI risk index as valuable prognostic tools in patients with acute coronary syndrome complicated by cardiogenic shock
- Merit overrules theory of mind when young children share resources with others
- Metabolic analysis of amino acids and vitamin B6 pathways in lymphoma survivors with cancer related chronic fatigue
- Immunopathogenesis of canine chronic ulcerative stomatitis
- Generalizing findings from a randomized controlled trial to a real-world study of the iLookOut, an online education program to improve early childhood care and education providers’ knowledge and attitudes about reporting child maltreatment
- When and what to test for: A cost-effectiveness analysis of febrile illness test-and-treat strategies in the era of responsible antibiotic use
- Comparison of effects and safety in providing controlled hypotension during surgery between dexmedetomidine and magnesium sulphate: A meta-analysis of randomized controlled trials
- The gene encoding the ketogenic enzyme HMGCS2 displays a unique expression during gonad development in mice
- Efficacy of a mitochondrion-targeting agent for reducing the level of urinary protein in rats with puromycin aminonucleoside-induced minimal-change nephrotic syndrome
- Association of endothelial nitric oxide synthase (NOS3) gene polymorphisms with primary open-angle glaucoma in a Saudi cohort
- Antitrust analysis with upward pricing pressure and cost efficiencies
- Natural selection contributes to food web stability
- Pyramiding QTLs controlling tolerance against drought, salinity, and submergence in rice through marker assisted breeding
- Diversity and plant growth-promoting functions of diazotrophic/N-scavenging bacteria isolated from the soils and rhizospheres of two species of Solanum
- Sofosbuvir-based regimen for genotype 2 HCV infected patients in Taiwan: A real world experience
- The virulence domain of Shigella IcsA contains a subregion with specific host cell adhesion function
- Sequencing artifacts derived from a library preparation method using enzymatic fragmentation
- Quantitative analysis of adsorption and desorption of volatile organic compounds on reusable zeolite filters using gas chromatography
- Quo vadis Pantanal? Expected precipitation extremes and drought dynamics from changing sea surface temperature
- Cloud-computing and machine learning in support of country-level land cover and ecosystem extent mapping in Liberia and Gabon
- The Brief Measure of Emotional Preoperative Stress (B-MEPS) as a new predictive tool for postoperative pain: A prospective observational cohort study
- The impact of diabetes mellitus medication on the incidence of endogenous endophthalmitis
- Correction: Chl1 DNA helicase and Scc2 function in chromosome condensation through cohesin deposition
- Clinical and pathological features of thrombotic microangiopathy influencing long-term kidney transplant outcomes
- Occupational exposure to particulate matter from air pollution in the outdoor workplaces in Almaty during the cold season
- Morphological adjustment in free-living Steinernema feltiae infective juveniles to increasing concentration of Nemafric-BL phytonematicide
- Key necroptotic proteins are required for Smac mimetic-mediated sensitization of cholangiocarcinoma cells to TNF-α and chemotherapeutic gemcitabine-induced necroptosis
- Concurrent lipidomics and proteomics on malignant plasma cells from multiple myeloma patients: Probing the lipid metabolome
- Retraction: SDR9C7 Promotes Lymph Node Metastases in Patients with Esophageal Squamous Cell Carcinoma
- Association between tuberculosis and depression on negative outcomes of tuberculosis treatment: A systematic review and meta-analysis
- Bioluminescent imaging of Arabidopsis thaliana using an enhanced Nano-lantern luminescence reporter system
- Biosynthetic pathway of indole-3-acetic acid in ectomycorrhizal fungi collected from northern Thailand
- Sex-specific and opposite modulatory aspects revealed by PPI network and pathway analysis of ischemic stroke in humans
- Control of the microsporidian parasite Nosema ceranae in honey bees (Apis mellifera) using nutraceutical and immuno-stimulatory compounds
- Role of donor genotype in RT-QuIC seeding activity of chronic wasting disease prions using human and bank vole substrates
- Oral magnesium supplementation for leg cramps in pregnancy—An observational controlled trial
- Health care professionals’ knowledge of commonly used sedative, analgesic and neuromuscular drugs: A single center (Rambam Health Care Campus), prospective, observational survey
- Campylobacter portucalensis sp. nov., a new species of Campylobacter isolated from the preputial mucosa of bulls
- Transgenic interleukin 11 expression causes cross-tissue fibro-inflammation and an inflammatory bowel phenotype in mice
- Sleep quality and sex modify the relationships between trait energy and fatigue on state energy and fatigue
- The role of peer, parental, and school norms in predicting adolescents’ attitudes and behaviours of majority and different minority ethnic groups in Croatia
- Availability, prices and affordability of selected antibiotics and medicines against non-communicable diseases in western Cameroon and northeast DR Congo
- The effect of mutations derived from mouse-adapted H3N2 seasonal influenza A virus to pathogenicity and host adaptation
- Detection of posttraumatic pneumothorax using electrical impedance tomography—An observer-blinded study in pigs with blunt chest trauma
- Educators’ perceptions of organisational readiness for implementation of a pre-adolescent transdisciplinary school health intervention for inter-generational outcomes
- Beyond the heterodimer model for mineralocorticoid and glucocorticoid receptor interactions in nuclei and at DNA
- The effects of sport expertise and shot results on basketball players’ action anticipation
- Framework and algorithms for identifying honest blocks in blockchain
- Exploring the impact of terminology differences in blood and organ donor decision making
- Platelet indices significantly correlate with liver fibrosis in HCV-infected patients
- The nitrate content of fresh and cooked vegetables and their health-related risks
- Bioreactor for mobilization of mesenchymal stem/stromal cells into scaffolds under mechanical stimulation: Preliminary results
- Non-gradient and genotype-dependent patterns of RSV gene expression
- Multiplex real-time PCR for the detection of Clavibacter michiganensis subsp. michiganensis, Pseudomonas syringae pv. tomato and pathogenic Xanthomonas species on tomato plants
- The 24-hour urinary cortisol in post-traumatic stress disorder: A meta-analysis
- Drug-eluting versus bare-metal stents for first myocardial infarction in patients with atrial fibrillation: A nationwide population-based cohort study
- Health-related quality of life among patients with type 2 diabetes mellitus in Eastern Province, Saudi Arabia: A cross-sectional study
- “I like the way I am, but I feel like I could get a little bit bigger”: Perceptions of body image among adolescents and youth living with HIV in Durban, South Africa
- Nanoparticle-based ‘turn-on’ scattering and post-sample fluorescence for ultrasensitive detection of water pollution in wider window
- Insights into the strategy of micro-environmental adaptation: Transcriptomic analysis of two alvinocaridid shrimps at a hydrothermal vent
- Thirty-day readmission after medical-surgical hospitalization for people who experience imprisonment in Ontario, Canada: A retrospective cohort study
- Hyper-spectral response and estimation model of soil degradation in Kenli County, the Yellow River Delta
- The association of telomere length and telomerase activity with adverse outcomes in older patients with non-ST-elevation acute coronary syndrome
- Construction of a high-density genetic map and fine mapping of a candidate gene locus for a novel branched-spike mutant in barley
- Alterations of aqueous humor Aβ levels in Aβ-infused and transgenic mouse models of Alzheimer disease
- Natural hybridization between Phyllagathis and Sporoxeia species produces a hybrid without reproductive organs
- The impact of peer attachment on prosocial behavior, emotional difficulties and conduct problems in adolescence: The mediating role of empathy
- Diagnostic performance of serum interferon gamma, matrix metalloproteinases, and periostin measurements for pulmonary tuberculosis in Japanese patients with pneumonia
- Characterization of black patina from the Tiber River embankments using Next-Generation Sequencing
- Problem gambling, associations with comorbid health conditions, substance use, and behavioural addictions: Opportunities for pathways to treatment
- Nanosheet wrapping-assisted coverslip-free imaging for looking deeper into a tissue at high resolution
- Validity of cerebrovascular ICD-9-CM codes in healthcare administrative databases. The Umbria Data-Value Project
- Torque teno virus viral load is related to age, CMV infection and HLA type but not to Alzheimer's disease
- Associations of cigarette smoking and burden of thoracic aortic calcification in asymptomatic individuals: A dose-response relationship
- Transforming assessment of speech in children with cleft palate via online crowdsourcing
- Human-raptor conflict in rural settlements of Colombia
- Assessment of peritoneal microbial features and tumor marker levels as potential diagnostic tools for ovarian cancer
- Deficiency syndromes in top predators associated with large-scale changes in the Baltic Sea ecosystem
- Perceived relative social status and cognitive load influence acceptance of unfair offers in the Ultimatum Game
- Hepatitis B and C virus infection among HIV patients within the public and private healthcare systems in Chile: A cross-sectional serosurvey
- Retraction: Oncogenic Fibulin-5 Promotes Nasopharyngeal Carcinoma Cell Metastasis through the FLJ10540/AKT Pathway and Correlates with Poor Prognosis
- From seed to flour: Sowing sustainability in the use of cantaloupe melon residue (Cucumis melo L. var. reticulatus)
- Core Scientific Dataset Model: A lightweight and portable model and file format for multi-dimensional scientific data
- Accounting for measurement error to assess the effect of air pollution on omic signals
- Leucine zipper transcription factor-like 1 binds adaptor protein complex-1 and 2 and participates in trafficking of transferrin receptor 1
- Barriers for tuberculosis case finding in Southwest Ethiopia: A qualitative study
- Genetic predisposition to celiac disease in Kazakhstan: Potential impact on the clinical practice in Central Asia
- A lower psoas muscle volume was associated with a higher rate of recurrence in male clear cell renal cell carcinoma
- Two angles of overqualification-the deviant behavior and creative performance: The role of career and survival job
- Cost-utility analysis of de-escalating biological disease-modifying anti-rheumatic drugs in patients with rheumatoid arthritis
- Efficient estimation of stereo thresholds: What slope should be assumed for the psychometric function?
- Learning efficient haptic shape exploration with a rigid tactile sensor array
- Effects of dietary supplementation with a microalga (Schizochytrium sp.) on the hemato-immunological, and intestinal histological parameters and gut microbiota of Nile tilapia in net cages
- Regional versus local wind speed and direction at a narrow beach with a high and steep foredune
- Fragmented QRS complex in patients with systemic lupus erythematosus at the time of diagnosis and its relationship with disease activity
- Severe thiamine deficiency in eastern Baltic cod (Gadus morhua)
- Transfer entropy as a variable selection methodology of cryptocurrencies in the framework of a high dimensional predictive model
- Psychometric validation of Czech version of the Sport Motivation Scale
- Correction: Multiple innate antibacterial immune defense elements are correlated in diverse ungulate species
- Recognition of personality disorder and anxiety disorder comorbidity in patients treated for depression in secondary psychiatric care
- Correction: Strategies for achieving high sequencing accuracy for low diversity samples and avoiding sample bleeding using illumina platform
- PLOS One
- Archív čísel
- Aktuálne číslo
- Informácie o časopise
Najčítanejšie v tomto čísle- Psychometric validation of Czech version of the Sport Motivation Scale
- Comparison of Monocyte Distribution Width (MDW) and Procalcitonin for early recognition of sepsis
- Effects of supplemental creatine and guanidinoacetic acid on spatial memory and the brain of weaned Yucatan miniature pigs
- Alterations of aqueous humor Aβ levels in Aβ-infused and transgenic mouse models of Alzheimer disease
Prihlásenie#ADS_BOTTOM_SCRIPTS#Zabudnuté hesloZadajte e-mailovú adresu, s ktorou ste vytvárali účet. Budú Vám na ňu zasielané informácie k nastaveniu nového hesla.
- Časopisy