The Filtering Engine for Large Conceptual Schemas is a prototype tool that helps users easily extract from these schemes the most relevant knowledge for a particular purpose.
Our engine has a core that is responsible for maintaining and accessing the features of a large conceptual scheme. In addition, the kernel is under control of the filtering requests that consult the schema in order to serve the user's information needs. The conjunction of requests for filtering specific information and the core of the engine is implemented as a web service. This architectural decision allows for easy interaction with web clients and increases the independence of technology and, hence, the usability of the global system.
The prototype of the Filtering Engine for Large Conceptual Schemas can be executed at Eclipse IDE with the Eclipse Web Tool Platform (WTP) on it. For this, to test the service, we need to configure WTP with Tomcat and Axis. Let's see the steps that are required to use this service locally.
Eclipse ETP overview
Eclipse WTP provides tools for developing standard Java web applications and Java EE applications. Typical web artifacts in a Java environment are HTML pages, XML files, web services, servlets, and JSP. WTP Eclipse simplifies the creation of these web devices and provides execution environments in which they can deploy, initiate and debug these devices.
Eclipse WTP supports all the largest web containers, e.g. Jetty and Apache Tomcat, as well as the major Java EE application server. This tutorial uses Apache Tomcat as a web container.
Dynamic Web Projects
In Eclipse WTP you create "Dynamic Web Projects". These projects provide us the functionalities necessary to execute, debug and deploy a Java web application. Therefore, for the development of Java web applications that create "Dynamic Web Projects"
Tomcat Installation
Installing the WTP
Use the Eclipse updates manager (select Help -> Install New Software) to install Eclipse WTP. Install all the packages from "Web, XML and Java EE Development" except "PHP Development" and "Eclipse RAP". Follow the guidelines of the wizard and restart Eclipse.
WTP configuration
Select Windows -> Preferences -> Server -> Runtime Environments. Per configurar WTP to useTomcat Press Add.
Select your Tomcat version.
Select the Tomcat installation directory where your Tomcat version is and press continue.
Press Finish and then OK. You are ready to use Tomcat with WTP.
Server
During the development you will create your server. You can manage your server through the server view. To see if the data has persisted, stop and restart the server. You can do this through the Windows -> Show View -> Servers -> Servers
Here's where you can start, stop and restart the server.
Now you're ready to go!
Apache Axis2 is a popular framework for open source web services. Axis2 uses the XML analysis based on Stax and internally uses the Axiom object model to represent the XML message. From this object, the Axis2 model provides an adapter that complies with Jax-WS. Here's how to install it and how to configure axis 2 in Eclipse.
Installation of Axis 2
This chapter requires an execution time of Axis2, the general download site here.
Extract the zipper from axis 2 and dial ETP with Eclipse, as shown below.
Currently Axis 2 1.5 is not supported. Make sure you download Axis 1.4.1 that you can find it like Axis 2 1.4.1. Download.
Extract the zipper from axis 2 and dial ETP with Eclipse, as shown below.
Click OK. Select Window -> Preference and put Axis2 as the default engine.
Now you're ready to go!
Download the filtering service project here.
Go to File->Import->General->Existing Projects in Workspace
Click Next and Select archive file. Select the zip download and click on finalizing.
Now you have the project with the filtering service inside.
You are now ready to start the web service for the imported project. In Eclipse, right-click on "Filtering.java" (within the src / edu.upc.gemece.filtering package) and select Web Services -> Create Web Service.
Make sure that the run time of the selected web service is Apache Axis2. Otherwise, click on the Runtime link of the web service: Apache Axis2 and select Axis2.
Click Next.
Click on "Next". If your server is not running, you will see this dialog. Click on "Start the server", wait a few seconds and click on "Next".
If there is no error, click on "Finish." Congratulations! You have started filtering web service. That was easy!
Once the service is ready to be consumed, we have to download it Filtering Client and unzip it on a web server that is compatible with PHP (for example, a local Apache server with PHP). Then, in the filter folder you will find the file start.php. Run it by typing "php start.php" into a console or by visiting the start.php file through the web browser. If everything works fine, the service and the client are ready to be used. Open the index.html file in the client directory that you already have unzipped and continue with the usage instructions that can be found here to start filtering a large schema.
Reminder: first, follow the instructions here prepare the environment
The prototype of the filtering engine for large conceptual schemas includes the implementation of filtering applications from the filter catalog introduced to Ch. 6 of this thesis following an architecture oriented to web services. Our prototype provides functionality to extract a part of the knowledge of the conceptual scheme of Magento.
Magento is a complete open source e-commerce platform aimed at website designers, developers, and business owners who are looking for a complete e-commerce website solution. The Magento system provides scalability, flexibility and features for business growth. The Magento structural subsystem contains 218 entity types and 983 attributes. On the other hand, the behavioral subschema contains 187 types of events and 69 pre and postconditions that specify the effect of the events. In addition, the conceptual scheme connects its elements through a set of 319 types of relationships and 165 generalization relationships, including 386 integrity restrictions, 185 referral rules, 15 data types and 46 types of data, enumeration.
This scheme is preloaded to the prototype schema manager service. The following screenshot shows the conceptual layout of Magento:
F1 - Request for filtering of type of entity and relationships
F2 - Application for filtering the rules of the scheme
F3 - Application for filtering of type of events
F4 - Request for filtering a conceptual schema
F5 - Request for filtering for the behavior of the context of the types of entity
F6 - Contextualized filtering request
The first filtering request focuses on a set (one or more) types of entities and relationships of a large conceptual scheme and returns the corresponding filtering scheme with the knowledge of interest to the user.
In our implementation we offer users a web-based interface to facilitate the construction of the focus set. The user is able to include the types of entities and relationships in the focus established through three different components.
First of all, we build a cloud of words with the 25 most relevant types of entities in Magento, where the most relevant ones are represented in a larger font size. This format is useful for quickly perceiving the most prominent types of entities for inexperienced users. If you select a unique entity type name within the word cloud, this type of entity includes the focus set.
Alternatively, the interface contains a search bar, which provides an autocompletional functionality that helps to discover the names of the existing entity and the types of Magento relationship. The names of the selected entity and relationship types are displayed in the search bar.
In addition to it, we include an alphabetical list to explore all types of entities and relationships of Magento. The user selects a single letter of the English alphabet from the list and obtains an enumeration of these types of entities and relationships whose name begins with this letter. The user can select the entity or relationship interest rates that are included in the search bar. Keep in mind that we have preceded each element in the alphabetical list with an icon that shows the type of schema element (type of entity, type of relationship or association class).
The user can also select the final size of the filtered scheme to indicate the amount of knowledge that he wants to obtain as a result. As an example, the following screenshots show the filter prototype when the user selects the ActivityInfoOfCustomerInStoreView association class as the focus of the defined entry. By using our prototype, the user discovers that this type of association is a binary association, whose sections are Client and StoreView. In addition, you get the role names (customerWithInfoAbout and storeViewWithInfoAbout) that can allow you to build additional OCL navigations, multiplicities (0 .. * on both sides), the attributes of each element and a referential-complete invariant in the context from StoreView.
The second filtering request focuses on a set of schemes (one or more) based on a large conceptual schema and returns the corresponding filtering scheme with the knowledge of interest for the user.
In our implementation we offer users a web-based interface to facilitate the construction of the focus set. The user is able to include scheme rules in the focus established through three different components.
First of all, we build a cloud of words with the 25 most relevant types of entities in Magento, where the most relevant ones are represented in a larger font size. This format is useful for quickly perceiving the most prominent types of entities for inexperienced users. If you select a unique entity type name within the word cloud, all the schema rules defined in the context of this type of entity are included in the focus set.
Alternatively, the interface contains a search bar, which provides a self-completion functionality that helps to discover the names of the existing entity and the types of events of Magento. The entity names and types of events selected are displayed in the search bar and all their schema rules are included in the focus set.
In addition to it, we include an alphabetical list to explore all types of entity, event, and relationship of Magento that define schema rules. The user selects a single letter of the English alphabet from the list and obtains an enumeration of these types of entities and relationships whose name begins with this letter. Keep in mind that we have preceded each element in the alphabetical list with an icon that shows the type of schema element (type of entity, type of event, type of relationship or association class).
The user can also select the final size of the filtered scheme in order to indicate the amount of knowledge that he wants to obtain as a result, or to define the scope of the request in the local to obtain only those elements referenced by the rules of the focus. As an example, the following screenshots show the filter prototype when the user selects the createInvoice operation of the later condition of theeffect () operation of the AddInvoice event type. By using our prototype, the user discovers the elements referenced by this scheme rule, taking into account that the scope has been established as a local. Specifically, the user can discover that the post-condition describes the behavior to generate a new invoice instance, including how to configure attribute values of the new invoice and how to relate it to new invoice instances that match the OrderLine instances of the current order of this event.
The third filter request focuses on a set (one or more) types of events from a large scheme and returns the corresponding filtered schema with the knowledge of interest to the user.
In our implementation we offer users a web-based interface to facilitate the construction of the focus set. The user is able to include types of events in the focus established through three different components.
First of all, we build a cloud of words with the 25 most important types of Magento events, where the most relevant ones are displayed in a larger font size. This format is useful for quickly perceiving the most prominent types of events for users without experience. If you select a unique event type name within the word cloud, this type of event is included in the focus set.
Alternatively, the interface contains a search bar, which provides a self-completion functionality that helps to discover the names of the types of existing Magento events. The names of the types of events selected are displayed in the search bar.
In addition, we include an alphabetical list to explore all types of Magento events. The user selects a single letter of the English alphabet from the list and then obtains an enumeration of the types of events whose name begins with this letter. The user can select the types of events of interest that are included in the search bar.
The user can also select the final size of the filtered scheme to indicate the amount of knowledge that he wants to obtain as a result. As an example, the following screenshots show the filter prototype when the user selects the event type AddProductToWishlist as an input focus set. By using our prototype, the user discovers that this type of event is a descendant of the types of abstract events ExistingProductEvent and ExistingCustomerEvent, which indicates that AddProductToWishlist is an event type that deals with products and clients. In fact, the filtered scheme shows that EexistingProductEvent is associated with an instance of the Product entity type, and there it is; In addition, the user obtains a complete invariant referential that establishes that each product instance is identified by the value of the sku attribute.
The fourth filtering request focuses on a small scheme obtained by applying any other catalog filtering request. This small scheme is a filtered conceptual scheme that the user wants to extend to obtain additional knowledge of the original large scheme with a relation superior to the schema elements contained in the filtered schema.
In our implementation we offer users a web-based interface to facilitate the construction of the focus set. The user is able to include elements from a filtered scheme to focus centered through two different components.
First of all, we offer users an interactive graphical view of the conceptual schema filtered through an HTML5 / Javascript library. Users can interact directly with the filtered scheme by changing the position of the elements (drag and drop). In addition, users can select a set of schema elements (one or more) of the filtered schema and include them in the focus set for the application of the fourth filtering request.
Alternatively, the user can type the name of the entity or the types of events desired in the search bar, which provides a complete auto-completion functionality. Therefore, the user can refine the set of focuses in order to combine the selection of elements of the filtered scheme with the selection of additional elements of the large scheme according to specific information needs.
Once the focus set is complete, the user clicks the Browse button to start the new filtering request and obtain the corresponding filtering scheme. In the following screenshots, the interface shows a filtered schema that focused on the type of Reimbursement entity. The scheme presents a reimbursement as a descendant of the Commentable type entity, associated to RefundLine instances, and that a refund belongs to the order to which it is related, which is also a descendant ofCommentable. In addition, the filtered scheme shows three invariants.
On the other hand, the entry of the example contains the scheme that includes the four types of entities of the previous step. The result includes the same elements as the input scheme (marked with a darker color) and two types of additional entities of high importance: Web and StoreView. In addition, this scheme contains two additional referential invariants completely.
Therefore, the interaction between the user and our proposed prototype results in an iterative process that must be applied as many times as necessary. The process ends when the user believes that he has obtained sufficient knowledge of the large scheme to cover the specific information needs or wants to apply a different filtering request.
The fifth filter application focuses on a set (one or more) types of entities in a large scheme and returns the corresponding filtering scheme with the types of events that are interesting to the user.
In our implementation we offer users a web-based interface to facilitate the construction of the focus set. The user is able to include the types of entities in the focus established through three different components.
First of all, we build a cloud of words with the 25 most relevant types of entities in Magento, where the most relevant ones are represented in a larger font size. This format is useful for quickly perceiving the most prominent types of entities for inexperienced users. If you select a unique entity type name within the word cloud, this type of entity includes the focus set.
Alternatively, the interface contains a search bar, which provides a self-completion functionality that helps to discover the names of the types of existing entities of Magento. The names of the selected entity types are displayed in the search bar.
In addition to it, we include an alphabetical list to explore all types of entities of Magento. The user selects a single letter of the English alphabet from the list and then obtains an enumeration of the types of entities whose name begins with this letter. The user can select the types of entities that are included in the search bar.
The user can also select the final size of the filtered scheme to indicate the amount of knowledge that he wants to obtain as a result. As an example, the following screenshots show the filter prototype when the user selects the entity type Address as the defined entry focus. By using our prototype, the user discovers the set of types of events related to this type of entity.
Therefore, we observe in the resulting filtering scheme that the types of DeleteCustomerAddress and EditCustomerAddress events make use of the entity type Address for their specification. In addition, the OrderConfirmation event type is related to two instances of address for billing and delivery roles, indicating that in Magento product orders require a billing address and delivery address.
The sixth filtering request focuses on a set (one or more) type of entity and events of a large conceptual scheme and returns the corresponding filtering scheme with the knowledge of interest for the user in apply a contextualization function.
In our implementation we offer users a web-based interface to facilitate the construction of the focus set. The user is able to include the types of entities and relationships in the focus established through three different components.
First of all, we build a cloud of words with the entities and the most relevant types of events of the 25, where the most relevant ones are represented in a larger font size. This format is useful for quickly perceiving the entity and the most prominent types of events for users without experience. If you select a single entity or event type name within the word cloud, it includes this type of entity or event in the focus set.
Alternatively, the interface contains a search bar, which provides a self-completion functionality that helps to discover the names of the existing entity and the types of events of Magento. The entity names and types of events selected are displayed in the search bar.
In addition to it, we include an alphabetical list to explore all types of entities and events of Magento. The user selects a single letter of the English alphabet from the list and obtains an enumeration of these types of entities and events whose name begins with this letter. Each element in the list also shows its attributes and participation in the relationships. The user can select the types of entity or event of interest, which are later included in the search bar and, in addition, they will change the multiplicities (some of them) of their attributes or participations in the relationships, or They even select default values for those attributes whose type is enumeration. Note that we have preceded each element in the alphabetical list with an icon that shows the type of schema element (type of entity, type of event, participation in the type of relationship or property attribute). If you change the multiples of the selection of defaults, the user applies a contextualization function.
The user can also select the final size of the filtered scheme to indicate the amount of knowledge that he wants to obtain as a result. As an example, the following screenshots show the filter prototype when the user selects the entity type BundleProduct as the defined entry focus and selects a default value for their priceMethod property attribute. By using our prototype, the user discovers that this type of entity descends from the type of entity Product and that is related to the types of entities of the website and SCItemOfBundleProduct. Keep in mind that the priceMethod attribute of BundleProduct shows its default value as Static.
For any question or suggestion, please do not hesitate to contact us by sending an email to avillegas@essi.upc.edu
Next, we propose future work on the evolution of the filtering engine for large conceptual schemes: