The document summarizes an enhanced spreadsheet system called CSeE that incorporates finite-domain constraint satisfaction capabilities. CSeE extends Microsoft Excel with a spreadsheet-specific constraint language (SSCL) and integrates it with the constraint logic programming system SWI Prolog to allow users to model and solve constraint satisfaction problems visually in a spreadsheet. The SSCL allows users to specify constraints in Excel functions in a declarative and scalable way without programming. CSeE provides improved usability over other spreadsheet extensions by hiding the complexities of constraint logic programming through the visual SSCL interface.
This document summarizes a presentation given at the 2003 American Society for Engineering Education Annual Conference on utilizing Excel to solve structural analysis problems. The presentation discusses using Excel spreadsheets to analyze determinate and indeterminate beams by deriving and solving the relevant equations for shear, moment, slope, and deflection. Sample problems are worked through to demonstrate the process. Excel offers advantages over other analysis software by being inexpensive, widely available, and easier for students to learn.
An integration of uml use case diagram and activity diagram with Z language f...IJECEIAES
Unified Modeling Language (UML) is the effective standard for modeling object-oriented software systems. However, the ambiguity of semantics and the absence of consistency among UML diagrams lead to lack of precisely defining the requirements of a system. On the other hand, formal methods are techniques and tools use the mathematical notations, and they involve the precise syntax and semantics of the unambiguous software requirements specification. It applied in early stages of Software Development Life Cycle (SDLC). Therefore, an integrated between UML specification and formal specification is required to reduce the requirements' ambiguity and error, and to improve the quality and security of software systems. This paper proposes an approach involves the combining UML use-case diagram and activity diagrams with Z language for formalization of Library Management System (LMS). The focus of this paper is on consistency between the UML diagrams to Z Schema, and then verified by using the Z / EVEs tool.
This document discusses how the Unified Modeling Language (UML) and UML Profile for Data Modeling can be used to map object-oriented application models to relational data models. Key mappings include:
- Packages map to database schemas
- Classes map to tables
- Attributes map to columns
- Associations between classes map to relationships between tables, such as one-to-one, one-to-many, and many-to-many relationships.
- Generalization relationships between classes map to identifying relationships between tables.
It is a well-known fact that precise definitions play significant role in the development of correct and robust
software. It has been recognized and emphasized that appropriately defined formal conceptual framework
of the context/problem domain proves quite useful in ensuring precise definitions, including those for
software metrics, which are consistent, unambiguous and language independent. In this paper, a formal
conceptual framework for defining metrics for component-based system is proposed, where the framework
formalises the behavioural aspects of the problem domain. The framework in respect of structural aspects
has been discussed in another paper.
This document discusses model versioning and model repositories in the context of living models. It proposes maintaining mapping information between different model types using a mapping function. It also discusses performing system analysis based on difference reports between model versions and cross-link mapping information. The modeling environment involves different model types and modeling tools. The document presents an overview of related work on model versioning and the architecture of a tool that can parse models, generate difference reports, and analyze systems based on mapping data.
Schema Integration, View Integration and Database Integration, ER Model & Dia...Mobarok Hossen
What is ER Model & Diagrams?
How can you design ER Model & Diagram?
What is Object-Oriented Model?
What is Schema Integration? how can you Schema Integrate?
What is View Integration? how can you View Integrate?
What is Database Integration? how can you Database Integrate?
This document presents a framework for automatically generating entity-relationship (ER) diagrams from natural language text input. It involves five main modules: 1) text preprocessing and summary generation, 2) translating the summary to a Semantic Business Vocabulary and Rules (SBVR) format, 3) part-of-speech tagging, 4) extracting ER diagram requirements by identifying entities, relationships, and attributes, and 5) generating an XMI file that can be imported into a UML modeling tool to visualize the generated ER diagram. Keywords are extracted from the input text using term frequency, and sentences are scored and selected for the summary based on important keywords and nouns. The framework aims to reduce the complexity of manually creating ER diagrams by
This document provides an overview of international trade through the lens of social institutions and economics. It begins with a history of international trade theory from ancient times to modern concepts. It then discusses key social institutions that influence trade - economic systems, legal systems, and religion. It examines international trade law and the World Trade Organization. Examples of social institutions and economic indicators of France, China, and Mozambique are provided. The document concludes by reflecting on how social issues like poverty relate to international trade and institutions.
This document summarizes a presentation given at the 2003 American Society for Engineering Education Annual Conference on utilizing Excel to solve structural analysis problems. The presentation discusses using Excel spreadsheets to analyze determinate and indeterminate beams by deriving and solving the relevant equations for shear, moment, slope, and deflection. Sample problems are worked through to demonstrate the process. Excel offers advantages over other analysis software by being inexpensive, widely available, and easier for students to learn.
An integration of uml use case diagram and activity diagram with Z language f...IJECEIAES
Unified Modeling Language (UML) is the effective standard for modeling object-oriented software systems. However, the ambiguity of semantics and the absence of consistency among UML diagrams lead to lack of precisely defining the requirements of a system. On the other hand, formal methods are techniques and tools use the mathematical notations, and they involve the precise syntax and semantics of the unambiguous software requirements specification. It applied in early stages of Software Development Life Cycle (SDLC). Therefore, an integrated between UML specification and formal specification is required to reduce the requirements' ambiguity and error, and to improve the quality and security of software systems. This paper proposes an approach involves the combining UML use-case diagram and activity diagrams with Z language for formalization of Library Management System (LMS). The focus of this paper is on consistency between the UML diagrams to Z Schema, and then verified by using the Z / EVEs tool.
This document discusses how the Unified Modeling Language (UML) and UML Profile for Data Modeling can be used to map object-oriented application models to relational data models. Key mappings include:
- Packages map to database schemas
- Classes map to tables
- Attributes map to columns
- Associations between classes map to relationships between tables, such as one-to-one, one-to-many, and many-to-many relationships.
- Generalization relationships between classes map to identifying relationships between tables.
It is a well-known fact that precise definitions play significant role in the development of correct and robust
software. It has been recognized and emphasized that appropriately defined formal conceptual framework
of the context/problem domain proves quite useful in ensuring precise definitions, including those for
software metrics, which are consistent, unambiguous and language independent. In this paper, a formal
conceptual framework for defining metrics for component-based system is proposed, where the framework
formalises the behavioural aspects of the problem domain. The framework in respect of structural aspects
has been discussed in another paper.
This document discusses model versioning and model repositories in the context of living models. It proposes maintaining mapping information between different model types using a mapping function. It also discusses performing system analysis based on difference reports between model versions and cross-link mapping information. The modeling environment involves different model types and modeling tools. The document presents an overview of related work on model versioning and the architecture of a tool that can parse models, generate difference reports, and analyze systems based on mapping data.
Schema Integration, View Integration and Database Integration, ER Model & Dia...Mobarok Hossen
What is ER Model & Diagrams?
How can you design ER Model & Diagram?
What is Object-Oriented Model?
What is Schema Integration? how can you Schema Integrate?
What is View Integration? how can you View Integrate?
What is Database Integration? how can you Database Integrate?
This document presents a framework for automatically generating entity-relationship (ER) diagrams from natural language text input. It involves five main modules: 1) text preprocessing and summary generation, 2) translating the summary to a Semantic Business Vocabulary and Rules (SBVR) format, 3) part-of-speech tagging, 4) extracting ER diagram requirements by identifying entities, relationships, and attributes, and 5) generating an XMI file that can be imported into a UML modeling tool to visualize the generated ER diagram. Keywords are extracted from the input text using term frequency, and sentences are scored and selected for the summary based on important keywords and nouns. The framework aims to reduce the complexity of manually creating ER diagrams by
This document provides an overview of international trade through the lens of social institutions and economics. It begins with a history of international trade theory from ancient times to modern concepts. It then discusses key social institutions that influence trade - economic systems, legal systems, and religion. It examines international trade law and the World Trade Organization. Examples of social institutions and economic indicators of France, China, and Mozambique are provided. The document concludes by reflecting on how social issues like poverty relate to international trade and institutions.
Genetic Resources Information System (GRIS) is a tool for documenting, managing, and sharing plant genetic resources data. It captures taxonomy, site, survey, sample, and management information. GRIS has two modes - normal mode where each section is entered step-by-step, and e-mode where a PDA is used to automatically populate sections in the field. Required tools include a PDA, GPS, digital camera, and barcode printer/reader. The design manager allows customizing forms and reports. Future improvements may include multi-platform/language support and using artificial intelligence.
This document discusses the meanings of the names Peter and Nathaniel. Peter is a Greek name meaning "rock", and was the name of one of Jesus's twelve apostles. Nathaniel is a Hebrew name meaning "God has given". The document also provides background on the Scottish surname Ralston, stating it means "from Ralf's farm".
The document outlines a trip to Malaysia, including spending 2-3 days in Kuala Lumpur visiting sites like the Kuala Tower and Genting Hall, 3 days on the island of Langkawi to see the Sky Bridge and Falcon Square, and 2 days in Penang to see Pening Hall and visit tea shops.
The Bell County Habitat for Humanity-ReStore will give a 50% discount* to customers who bring in a new, unwrapped toy on December 7, 2013, 9a-2p! (*Select paint and tile not discounted.)
The ReStore will give the toys to Billy Bob’s Burgers #1 in Killeen to help with their annual TOYS for TOTS collection!
Your purchase will help Habitat build homes and put a gift under the tree for a child in our community!
(You MUST BRING A TOY for the discount!)
This document provides recommendations for prog rock albums for beginners to listen to, including seminal albums by Pink Floyd, Yes, Genesis, King Crimson, Emerson Lake and Palmer, Rush, and Italian prog bands. It recommends starting with Dark Side of the Moon by Pink Floyd, Close to the Edge by Yes, Selling England by the Pound by Genesis, In the Court of the Crimson King by King Crimson, and albums featuring long compositions by ELP. More recent prog influences in bands like Dream Theater, Opeth, and Radiohead are also highlighted.
This document describes DATA-SPREAD, a system that unifies databases and spreadsheets. It discusses the challenges in combining these two disparate data models. DATA-SPREAD retains the ease-of-use of spreadsheets while adding database capabilities like scalability and powerful SQL queries. It uses a backend database (Postgres) while maintaining a spreadsheet frontend. The demonstration will allow users to interactively analyze and update relational data using both the spreadsheet interface and SQL commands.
This document discusses developing scientific computing applications as program families to improve quality and productivity. It proposes a methodology involving commonality analysis to document commonalities and variabilities between family members. This information is then used to develop a domain-specific language for automatically generating family members. As an example, it examines a family of mesh generators and a family of virtual material testing laboratories.
Assisting Domain Experts To Formulate And Solve Constraint Satisfaction ProblemsJim Jimenez
This document discusses building interfaces to help domain experts formulate constraint satisfaction problems (CSPs) without expertise in CSP modeling. It presents a system with three phases: 1) capturing problem information through specialized interfaces for different CSP types (e.g. map coloring, scheduling), 2) transforming the information into a common semantic web format understandable by solvers, and 3) solving the problem and providing feedback. The interfaces ask focused questions to determine variables, domains, and constraints. This information is represented in OWL and SWRL to allow linking to external semantic web knowledge.
This document discusses spreadsheets and their continued success and popularity. It outlines some key advantages of spreadsheets including their versatility, ease of use, large support community, and real-time user interface. However, it also notes some limitations and pain points with spreadsheets regarding collaboration, integration with other applications, workflows, architecture, visualization, and using spreadsheets to build robust applications. The document then presents some potential solutions and new spreadsheet tools that could address these pain points to improve upon the traditional spreadsheet.
INTEGRATION OF LATEX FORMULA IN COMPUTER-BASED TEST APPLICATION FOR ACADEMIC ...IJCSES Journal
LaTeX is a free document preparation system that handles the typesetting of mathematical expressions
smoothly and elegantly. It has become the standard format for creating and publishing research articles in
mathematics and many scientific fields. Computer-based testing (CBT) has become widespread in recent
years. Most establishments now use it to deliver assessments as an alternative to using the pen- paper
method. To deliver an assessment, the examiner would first add a new exam or edit an existing exam using
a CBT editor. Thus, the implementation of CBT should comprise both support for setting and administering
questions. Existing CBT applications used in the academic space lacks the capacity to handle advanced
formulas, programming codes, and tables, thereby resorting to converting them into images which takes a
lot of time and storage space. In this paper, we discuss how we solvde this problem by integrating latex
technology into our CBT applications. This enables seamless manipulation and accurate rendering of
tables, programming codes, and equations to increase readability and clarity on both the setting and
administering of questions platforms. Furthermore, this implementation has reduced drastically the sizes of
system resources allocated to converting tables, codes, and equations to images. Those in mathematics,
statistics, computer science, engineering, chemistry, etc. will find this application useful.
Microsoft Excel is a very flexible and widely used tool for engineers. While it is not specialized engineering software, Excel allows engineers to perform calculations with any set of equations and is not limited to a particular type of engineering. Excel is also very prevalent since it is pre-installed on most computers, allowing for easy sharing of spreadsheets with colleagues. Additionally, Excel integrates well with other common software like PowerPoint and Word. For these reasons of flexibility, prevalence, and integration, Excel has become the most popular engineering tool worldwide and can be useful for students and engineers for educational purposes and solving complex problems.
Microsoft Excel is a commercial spreadsheet application developed by Microsoft for Windows and Mac operating systems. It allows users to organize and calculate data, create charts and graphs, write macros using Visual Basic for Applications, and connect to external data sources. Excel is widely used and has largely replaced Lotus 1-2-3 as the standard spreadsheet program. It forms part of the Microsoft Office suite and the current versions are Excel 2010 for Windows and Excel 2011 for Mac.
Microsoft Excel is a commercial spreadsheet application developed by Microsoft for Windows and Mac operating systems. It allows users to organize and calculate data, create charts and graphs, write macros using Visual Basic for Applications, and connect to external data sources. Excel is widely used and has largely replaced Lotus 1-2-3 as the standard spreadsheet program. It forms part of the Microsoft Office suite and the current versions are Excel 2010 for Windows and Excel 2011 for Mac.
Developing multithreaded database application using java tools and oracle dat...csandit
In many business organizations, database applicatio
ns are designed and implemented using
various DBMS and Programming Languages. These appli
cations are used to maintain
databases for the organizations. The organization
departments can be located at different
locations and can be connected by intranet environm
ent. In such environment maintenance of
database records become an assignment of complexity
which needs to be resolved. In this paper
an intranet application is designed and implemented
using Object-Oriented Programming
Language Java and Object-Relational Database Manage
ment System Oracle in multithreaded
Operating System environment.
DEVELOPING MULTITHREADED DATABASE APPLICATION USING JAVA TOOLS AND ORACLE DAT...cscpconf
In many business organizations, database applications are designed and implemented using
various DBMS and Programming Languages. These applications are used to maintain
databases for the organizations. The organization departments can be located at different
locations and can be connected by intranet environment. In such environment maintenance of
database records become an assignment of complexity which needs to be resolved. In this paper
an intranet application is designed and implemented using Object-Oriented Programming
Language Java and Object-Relational Database Management System Oracle in multithreaded
Operating System environment
ABC Architecture A New Approach To Build Reusable And Adaptable Business Tie...Joshua Gorinson
1) The document proposes a new ABC Architecture for building reusable and adaptable business tier components based on static business interfaces.
2) The architecture uses Call Level Interfaces as a low-level API to communicate with databases, and implements type-safe interfaces to communicate with client applications based on SQL statement schemas.
3) ABC components can dynamically accept, remove, and update SQL statements at runtime from authorized entities, and execute the statements on behalf of client applications through the interfaces.
Spreadsheets are the most popular and conventionally databases in use today. Since Spreadsheets are visual and expression based languages, research into the features of spreadsheets is therefore a highly relevant topic to study. Spreadsheet can be viewed as a Relation Database which contains a sheet and its corresponding information in terms of rows, while in RDBMS each table or say relation also represents its contained information in terms of rows. Each row represents a record which belongs to one or more relation. Spreadsheets uses different formulae to extract required information but it need expert knowledge about the tool and its usage. One can extend the usage of Spreadsheet in any direction as it provides great flexibility in terms of data storage and dependency of stored data. We surveyed some of research which took great attention over Spreadsheets and its applicability in different functional cases, such as Data Visualization, SQL Engines and many more. Our survey focuses on QUERYSHEET, ES-SQL, MDSHEET and PrediCalc [3], [5], [4], [8]. These different researches are motivations to our survey and attraction in Spreadsheets and its functional extensibility.
The document discusses complex event processing (CEP) and its use of Oracle Continuous Query Language (CQL) to process streaming data. CEP can process hundreds of thousands of events per second and detect patterns. CQL extends SQL to enable developers to query streaming data. The document provides examples of how CEP can be used in applications like monitoring financial transactions and algorithmic stock trading. It demonstrates the use of CQL concepts like streams, relations, operators and patterns to implement solutions.
Improved Presentation and Facade Layer Operations for Software Engineering Pr...Dr. Amarjeet Singh
Nowadays, one of the most challenging situations for
software developers is the presence of a mismatch between
relational database systems and programming codes. In the
literature, this problem is defined as "impedance mismatch".
This study is to develop a framework built on innovations
based on the existing Object Relational Mapping technique to
solve these problems. In the study, users can perform
operations for three different database systems such as
MsSQL, MySql and Oracle. In addition, these operations can
be done within the framework of C# and Java programming
languages. In this framework, while the developers can define
database tables in the interface automatically, they can create
relations between tables by defining a foreign key. When the
system performs these operations, it creates tables, views, and
stored procedures automatically. In addition, entity classes in
C# and Java for tables and views, and operation classes for
stored procedures are created automatically. The summary of
the transactions can be taken as pdf file by the framework. In
addition, the project can automatically create Windows
Communication Foundation classes to facilitate the handling
of database elements created and the interfacing operations, as
well. This framework, which supports distributed systems, can
be downloaded at this link.
The document discusses parallel computing over the past 25 years and challenges for using multicore chips in the next decade. It aims to provide context to scale applications effectively to 32-1024 cores. Key challenges include expressing inherent application parallelism while enabling efficient mapping to hardware through programming models and runtime systems. Future work includes developing methods to restore lost parallelism information and tradeoffs between programming effort, generality and performance.
This document provides an overview of object-oriented programming concepts in Objective-C, including:
1) It introduces object-oriented programming and some key concepts like data combined with operations, interfaces, implementations, classes, inheritance, polymorphism, and dynamism.
2) It describes the Objective-C object model including classes, inheritance hierarchies, subclass definitions, and how objects can send messages to each other.
3) It discusses how to structure Objective-C programs using concepts like outlets, intrinsic and extrinsic connections between objects, frameworks, aggregation, and decomposition.
Genetic Resources Information System (GRIS) is a tool for documenting, managing, and sharing plant genetic resources data. It captures taxonomy, site, survey, sample, and management information. GRIS has two modes - normal mode where each section is entered step-by-step, and e-mode where a PDA is used to automatically populate sections in the field. Required tools include a PDA, GPS, digital camera, and barcode printer/reader. The design manager allows customizing forms and reports. Future improvements may include multi-platform/language support and using artificial intelligence.
This document discusses the meanings of the names Peter and Nathaniel. Peter is a Greek name meaning "rock", and was the name of one of Jesus's twelve apostles. Nathaniel is a Hebrew name meaning "God has given". The document also provides background on the Scottish surname Ralston, stating it means "from Ralf's farm".
The document outlines a trip to Malaysia, including spending 2-3 days in Kuala Lumpur visiting sites like the Kuala Tower and Genting Hall, 3 days on the island of Langkawi to see the Sky Bridge and Falcon Square, and 2 days in Penang to see Pening Hall and visit tea shops.
The Bell County Habitat for Humanity-ReStore will give a 50% discount* to customers who bring in a new, unwrapped toy on December 7, 2013, 9a-2p! (*Select paint and tile not discounted.)
The ReStore will give the toys to Billy Bob’s Burgers #1 in Killeen to help with their annual TOYS for TOTS collection!
Your purchase will help Habitat build homes and put a gift under the tree for a child in our community!
(You MUST BRING A TOY for the discount!)
This document provides recommendations for prog rock albums for beginners to listen to, including seminal albums by Pink Floyd, Yes, Genesis, King Crimson, Emerson Lake and Palmer, Rush, and Italian prog bands. It recommends starting with Dark Side of the Moon by Pink Floyd, Close to the Edge by Yes, Selling England by the Pound by Genesis, In the Court of the Crimson King by King Crimson, and albums featuring long compositions by ELP. More recent prog influences in bands like Dream Theater, Opeth, and Radiohead are also highlighted.
This document describes DATA-SPREAD, a system that unifies databases and spreadsheets. It discusses the challenges in combining these two disparate data models. DATA-SPREAD retains the ease-of-use of spreadsheets while adding database capabilities like scalability and powerful SQL queries. It uses a backend database (Postgres) while maintaining a spreadsheet frontend. The demonstration will allow users to interactively analyze and update relational data using both the spreadsheet interface and SQL commands.
This document discusses developing scientific computing applications as program families to improve quality and productivity. It proposes a methodology involving commonality analysis to document commonalities and variabilities between family members. This information is then used to develop a domain-specific language for automatically generating family members. As an example, it examines a family of mesh generators and a family of virtual material testing laboratories.
Assisting Domain Experts To Formulate And Solve Constraint Satisfaction ProblemsJim Jimenez
This document discusses building interfaces to help domain experts formulate constraint satisfaction problems (CSPs) without expertise in CSP modeling. It presents a system with three phases: 1) capturing problem information through specialized interfaces for different CSP types (e.g. map coloring, scheduling), 2) transforming the information into a common semantic web format understandable by solvers, and 3) solving the problem and providing feedback. The interfaces ask focused questions to determine variables, domains, and constraints. This information is represented in OWL and SWRL to allow linking to external semantic web knowledge.
This document discusses spreadsheets and their continued success and popularity. It outlines some key advantages of spreadsheets including their versatility, ease of use, large support community, and real-time user interface. However, it also notes some limitations and pain points with spreadsheets regarding collaboration, integration with other applications, workflows, architecture, visualization, and using spreadsheets to build robust applications. The document then presents some potential solutions and new spreadsheet tools that could address these pain points to improve upon the traditional spreadsheet.
INTEGRATION OF LATEX FORMULA IN COMPUTER-BASED TEST APPLICATION FOR ACADEMIC ...IJCSES Journal
LaTeX is a free document preparation system that handles the typesetting of mathematical expressions
smoothly and elegantly. It has become the standard format for creating and publishing research articles in
mathematics and many scientific fields. Computer-based testing (CBT) has become widespread in recent
years. Most establishments now use it to deliver assessments as an alternative to using the pen- paper
method. To deliver an assessment, the examiner would first add a new exam or edit an existing exam using
a CBT editor. Thus, the implementation of CBT should comprise both support for setting and administering
questions. Existing CBT applications used in the academic space lacks the capacity to handle advanced
formulas, programming codes, and tables, thereby resorting to converting them into images which takes a
lot of time and storage space. In this paper, we discuss how we solvde this problem by integrating latex
technology into our CBT applications. This enables seamless manipulation and accurate rendering of
tables, programming codes, and equations to increase readability and clarity on both the setting and
administering of questions platforms. Furthermore, this implementation has reduced drastically the sizes of
system resources allocated to converting tables, codes, and equations to images. Those in mathematics,
statistics, computer science, engineering, chemistry, etc. will find this application useful.
Microsoft Excel is a very flexible and widely used tool for engineers. While it is not specialized engineering software, Excel allows engineers to perform calculations with any set of equations and is not limited to a particular type of engineering. Excel is also very prevalent since it is pre-installed on most computers, allowing for easy sharing of spreadsheets with colleagues. Additionally, Excel integrates well with other common software like PowerPoint and Word. For these reasons of flexibility, prevalence, and integration, Excel has become the most popular engineering tool worldwide and can be useful for students and engineers for educational purposes and solving complex problems.
Microsoft Excel is a commercial spreadsheet application developed by Microsoft for Windows and Mac operating systems. It allows users to organize and calculate data, create charts and graphs, write macros using Visual Basic for Applications, and connect to external data sources. Excel is widely used and has largely replaced Lotus 1-2-3 as the standard spreadsheet program. It forms part of the Microsoft Office suite and the current versions are Excel 2010 for Windows and Excel 2011 for Mac.
Microsoft Excel is a commercial spreadsheet application developed by Microsoft for Windows and Mac operating systems. It allows users to organize and calculate data, create charts and graphs, write macros using Visual Basic for Applications, and connect to external data sources. Excel is widely used and has largely replaced Lotus 1-2-3 as the standard spreadsheet program. It forms part of the Microsoft Office suite and the current versions are Excel 2010 for Windows and Excel 2011 for Mac.
Developing multithreaded database application using java tools and oracle dat...csandit
In many business organizations, database applicatio
ns are designed and implemented using
various DBMS and Programming Languages. These appli
cations are used to maintain
databases for the organizations. The organization
departments can be located at different
locations and can be connected by intranet environm
ent. In such environment maintenance of
database records become an assignment of complexity
which needs to be resolved. In this paper
an intranet application is designed and implemented
using Object-Oriented Programming
Language Java and Object-Relational Database Manage
ment System Oracle in multithreaded
Operating System environment.
DEVELOPING MULTITHREADED DATABASE APPLICATION USING JAVA TOOLS AND ORACLE DAT...cscpconf
In many business organizations, database applications are designed and implemented using
various DBMS and Programming Languages. These applications are used to maintain
databases for the organizations. The organization departments can be located at different
locations and can be connected by intranet environment. In such environment maintenance of
database records become an assignment of complexity which needs to be resolved. In this paper
an intranet application is designed and implemented using Object-Oriented Programming
Language Java and Object-Relational Database Management System Oracle in multithreaded
Operating System environment
ABC Architecture A New Approach To Build Reusable And Adaptable Business Tie...Joshua Gorinson
1) The document proposes a new ABC Architecture for building reusable and adaptable business tier components based on static business interfaces.
2) The architecture uses Call Level Interfaces as a low-level API to communicate with databases, and implements type-safe interfaces to communicate with client applications based on SQL statement schemas.
3) ABC components can dynamically accept, remove, and update SQL statements at runtime from authorized entities, and execute the statements on behalf of client applications through the interfaces.
Spreadsheets are the most popular and conventionally databases in use today. Since Spreadsheets are visual and expression based languages, research into the features of spreadsheets is therefore a highly relevant topic to study. Spreadsheet can be viewed as a Relation Database which contains a sheet and its corresponding information in terms of rows, while in RDBMS each table or say relation also represents its contained information in terms of rows. Each row represents a record which belongs to one or more relation. Spreadsheets uses different formulae to extract required information but it need expert knowledge about the tool and its usage. One can extend the usage of Spreadsheet in any direction as it provides great flexibility in terms of data storage and dependency of stored data. We surveyed some of research which took great attention over Spreadsheets and its applicability in different functional cases, such as Data Visualization, SQL Engines and many more. Our survey focuses on QUERYSHEET, ES-SQL, MDSHEET and PrediCalc [3], [5], [4], [8]. These different researches are motivations to our survey and attraction in Spreadsheets and its functional extensibility.
The document discusses complex event processing (CEP) and its use of Oracle Continuous Query Language (CQL) to process streaming data. CEP can process hundreds of thousands of events per second and detect patterns. CQL extends SQL to enable developers to query streaming data. The document provides examples of how CEP can be used in applications like monitoring financial transactions and algorithmic stock trading. It demonstrates the use of CQL concepts like streams, relations, operators and patterns to implement solutions.
Improved Presentation and Facade Layer Operations for Software Engineering Pr...Dr. Amarjeet Singh
Nowadays, one of the most challenging situations for
software developers is the presence of a mismatch between
relational database systems and programming codes. In the
literature, this problem is defined as "impedance mismatch".
This study is to develop a framework built on innovations
based on the existing Object Relational Mapping technique to
solve these problems. In the study, users can perform
operations for three different database systems such as
MsSQL, MySql and Oracle. In addition, these operations can
be done within the framework of C# and Java programming
languages. In this framework, while the developers can define
database tables in the interface automatically, they can create
relations between tables by defining a foreign key. When the
system performs these operations, it creates tables, views, and
stored procedures automatically. In addition, entity classes in
C# and Java for tables and views, and operation classes for
stored procedures are created automatically. The summary of
the transactions can be taken as pdf file by the framework. In
addition, the project can automatically create Windows
Communication Foundation classes to facilitate the handling
of database elements created and the interfacing operations, as
well. This framework, which supports distributed systems, can
be downloaded at this link.
The document discusses parallel computing over the past 25 years and challenges for using multicore chips in the next decade. It aims to provide context to scale applications effectively to 32-1024 cores. Key challenges include expressing inherent application parallelism while enabling efficient mapping to hardware through programming models and runtime systems. Future work includes developing methods to restore lost parallelism information and tradeoffs between programming effort, generality and performance.
This document provides an overview of object-oriented programming concepts in Objective-C, including:
1) It introduces object-oriented programming and some key concepts like data combined with operations, interfaces, implementations, classes, inheritance, polymorphism, and dynamism.
2) It describes the Objective-C object model including classes, inheritance hierarchies, subclass definitions, and how objects can send messages to each other.
3) It discusses how to structure Objective-C programs using concepts like outlets, intrinsic and extrinsic connections between objects, frameworks, aggregation, and decomposition.
Proceedings of the 2015 Industrial and Systems Engineering Res.docxwkyra78
Proceedings of the 2015 Industrial and Systems Engineering Research Conference
S. Cetinkaya and J. K. Ryan, eds.
Use of Symbolic Regression for Lean Six Sigma Projects
Daniel Moreno-Sanchez, MSc.
Jacobo Tijerina-Aguilera, MSc.
Universidad de Monterrey
San Pedro Garza Garcia, NL 66238, Mexico
Arlethe Yari Aguilar-Villarreal, MEng.
Universidad Autonoma de Nuevo Leon
San Nicolas de los Garza, NL 66451, Mexico
Abstract
Lean Six Sigma projects and the quality engineering profession have to deal with an extensive selection of tools
most of them requiring specialized training. The increased availability of standard statistical software motivates the
use of advanced data science techniques to identify relationships between potential causes and project metrics. In
these circumstances, Symbolic Regression has received increased attention from researchers and practitioners to
uncover the intrinsic relationships hidden within complex data without requiring specialized training for its
implementation. The objective of this paper is to evaluate the advantages and drawbacks of using computer assisted
Symbolic Regression within the Analyze phase of a Lean Six Sigma project. An application of this approach in a
service industry project is also presented.
Keywords
Symbolic Regression, Data Science, Lean Six Sigma
1. Introduction
Lean Six Sigma (LSS) has become a well-known hybrid methodology for quality and productivity improvement in
organizations. Its wide adoption in several industries has shaped Process Innovation and Operational Excellence
initiatives, enabling LSS to become a main topic in quality practitioner sites of interest [1], recognized Six Sigma
(SS) certification body of knowledge contents [2], and professional society conferences [3].
However LSS projects and the quality engineering profession have to deal with an extensive selection of tools most
of them requiring specialized training. To assist LSS practitioners it is common to categorize tools based on the
traditional DMAIC model which stands for Define, Measure, Analyze, Improve, and Control phases. Table 1
presents an overview of the main tools that are commonly used in each phase of a LSS project, allowing team
members to progressively develop an understanding between realizing each phase’s intent and how the selected
tools can contribute to that purpose.
This paper focuses on the Analyze phase where tools for statistical model building are most likely to be selected.
The increased availability of standard statistical software motivates the use of advanced data science techniques to
identify relationships between potential causes and project metrics. In these circumstances Symbolic Regression
(SR) has received increased attention from researchers and practitioners even though SR is still in an early stage of
commercial availability.
The objective of this paper is to evaluate the advantages and drawbacks o ...
Load Distribution Composite Design Pattern for Genetic Algorithm-Based Autono...ijsc
The document describes a load distribution composite design pattern for genetic algorithm-based autonomic computing systems. The pattern distributes the population generated by a genetic algorithm server across multiple clients to reduce the server's load. It uses case-based reasoning, database access, and master-slave design patterns. The client evaluates portions of the population and stores results in a database. This allows the genetic algorithm to scale effectively to large problem sizes by distributing the computation workload.
LOAD DISTRIBUTION COMPOSITE DESIGN PATTERN FOR GENETIC ALGORITHM-BASED AUTONO...ijsc
Current autonomic computing systems are ad hoc solutions that are designed and implemented from the
scratch. When designing software, in most cases two or more patterns are to be composed to solve a bigger
problem. A composite design patterns shows a synergy that makes the composition more than just the sum
of its parts which leads to ready-made software architectures. As far as we know, there are no studies on
composition of design patterns for autonomic computing domain. In this paper we propose pattern-oriented
software architecture for self-optimization in autonomic computing system using design patterns
composition and multi objective evolutionary algorithms that software designers and/or programmers can
exploit to drive their work. Main objective of the system is to reduce the load in the server by distributing
the population to clients. We used Case Based Reasoning, Database Access, and Master Slave design
patterns. We evaluate the effectiveness of our architecture with and without design patterns compositions.
The use of composite design patterns in the architecture and quantitative measurements are presented. A
simple UML class diagram is used to describe the architecture.
The document describes the need for and objectives of developing a paperless SQL-based examination system. Currently, paperless exam systems mainly focus on objective questions and cannot adequately evaluate subjective questions involving SQL programming. The proposed system aims to analyze SQL queries and programming questions in real-time to provide prompt feedback to students. It will use a dynamic algorithm to interpret queries and compare student responses to standard outputs. The system will be developed using J2EE and follow the MVC pattern, with a practice test facility and functions for query analysis, reporting, and administration. Its goals are to reduce grading workload, promote learning, and comprehensively evaluate students' SQL skills.
International Journal of Programming Languages and Applications (IJPLA)ijpla
International Journal of Programming Languages and Applications (IJPLA) is a Quarterly peer-reviewed and refereed open access journal that publishes articles which contribute new results in all areas of the Programming Languages and Applications. This journal is dedicated to the distribution of research results in the areas of Programming Languages and Applications.
A study of the Behavior of Floating-Point Errorsijpla
The dangers of programs performing floating-point computations are well known. This is due to numerical reliability issues resulting from rounding errors arising during the computations. In general, these round-off errors are neglected because they are small. However, they can be accumulated and propagated and lead to faulty execution and failures. Typically, in critical embedded systems scenario, these faults may cause dramatic damages (eg. failures of Ariane 5 launch and Patriot Rocket mission). The ufp (unit in the first place) and ulp (unit in the last place) functions are used to estimate maximum value of round-off errors. In this paper, the idea consists in studying the behavior of round-off errors, checking their numerical stability using a set of constraints and ensuring that the computation results of round-off errors do not become larger when solving constraints about the ufp and ulp values.
5th International Conference on Machine Learning and Soft Computing (MLSC 2024)ijpla
Research Paper Submission..!!
Free Publication for Extended papers
5th International Conference on Machine Learning and Soft Computing (MLSC 2024)
February 24 ~ 25, 2024, Vancouver, Canada
Webpage URL: https://acsty2024.org/mlsc/index
Submission Deadline: January 27, 2024
Selected papers from MLSC 2024, after further revisions, will be published in the special issues of the following journals.
Machine Learning and Applications: An International Journal (MLAIJ)
International Journal on Soft Computing (IJSC)
Information Technology in Industry (ITII)
Submission System Link: https://acsty2024.org/submission/index.php
Contact us:
Here's where you can reach us : mlsc@acsty2024.org or mlsc.conf@yahoo.com
#machinelearning #artificialintiligence #datamining #softcomputing #datascintific
International Conference on Antennas, Microwave and Microelectronics Engineer...ijpla
International Conference on Antennas, Microwave and Microelectronics Engineering (AMiMi 2024) will provide an excellent international forum for sharing knowledge andnew research results in all areas of Antennas, Microwave and Microelectronics Engineering. The conference focuses to promote interdisciplinary studies Antennas, Microwave and Microelectronics Engineering. Authors are solicited to contribute to this conference by submitting articles for the development of Antennas, Microwave and Microelectronics Engineering.Original research papers, state-of-the-art reviews are invited for publication in all areas of Antennas, Microwave and Microelectronics Engineering.
INVESTIGATION OF ATTITUDES TOWARDS COMPUTER PROGRAMMING IN TERMS OF VARIOUS V...ijpla
Java Language becomes the most common Object-Oriented Programming Language over the entire world. Students from Computer Sciences and Information Technology are struggling to lean Java concepts and programs on Java. That is because of the various difficulties in understanding Object Oriented concepts especially by novice programmers. This research adopts the design of interactive animation tool named LearnOOP which includes an animated visual model that shows the role of an object within a Java program. The visual object reflects the attributes and behaviour of that object to enhance students’ understanding. The interaction between the developed tool and students is conducted and the usability is measured using a questionnaire. The results show that the developed tool is more effective than using traditional teaching and positively impact learning. The results also have confirmed that LearnOOP tool is promising with respect to quality assurance, effectiveness and usability.
Research Paper Submission..!!! Free Publication for Extended papers 3rd Inter...ijpla
Research Paper Submission..!!!
Free Publication for Extended papers
3rd International Conference on Computing and Information Technology Trends (CCITT 2024)
January 13-14, 2024, Virtual Conference
https://ccitt2024.org/
Submission Deadline: December 30, 2023(Final Call)
Selected papers from CCITT 2024, after further revisions, will be published in the special issues of the following journals.
International Journal of Artificial Intelligence & Applications (IJAIA)
International Journal on Computational Science & Applications (IJCSA)
International Journal on Bioinformatics & Biosciences (IJBB)
International Journal On Cryptography And Information Security (IJCIS)
International Journal of Fuzzy Logic Systems (IJFLS)
International Journal of Mobile Network Communications & Telematics (IJMNCT)
International Journal of Programming Languages and Applications (IJPLA)
International Journal of Embedded Systems and Applications (IJESA)
Submission System URL:
https://ccitt2024.org/submission/index.php
Contact Us:
Here's where you can reach us : ccitt@ccitt2024.org or ccittconf@yahoo.com
#entrepreneur #motivation #success #inspiration #money #blackgirlsrock #blackgirls #wearemagical #knowledge #ai #coding #tech #technology #programmer #pc #design #interiordesign #art #decor #home #good #to #cool #türkiye #instadaily #love #truth #respect #truthbetold #lovelife #life #fashion #style #watch #bulletperf #bahrain #development #emcansolutions #branding #upsc #science #ias #ibps #bigdata #7wdata #artificialintelligence #painting #follow #picoftheday #sullen #bees #sullenclothing #glasgow #inkgeeks #math #physicsfun #astronomy #physicsmemes #devops #iot #azure #php #researchers
2nd International Conference on Computing and Information Technology (CITE 2024)ijpla
2nd International Conference on Computing and Information Technology (CITE 2024) will provide an excellent international forum for sharing knowledge and results in theory, methodology and applications of Computer Science, Computer Engineering and Information Technology.
A Hybrid Bacterial Foraging Algorithm For Solving Job Shop Scheduling Problemsijpla
Bio-Inspired computing is the subset of Nature-Inspired computing. Job Shop Scheduling Problem is
categorized under popular scheduling problems. In this research work, Bacterial Foraging Optimization
was hybridized with Ant Colony Optimization and a new technique Hybrid Bacterial Foraging
Optimization for solving Job Shop Scheduling Problem was proposed. The optimal solutions obtained by
proposed Hybrid Bacterial Foraging Optimization algorithms are much better when compared with the
solutions obtained by Bacterial Foraging Optimization algorithm for well-known test problems of different
sizes. From the implementation of this research work, it could be observed that the proposed Hybrid
Bacterial Foraging Optimization was effective than Bacterial Foraging Optimization algorithm in solving
Job Shop Scheduling Problems. Hybrid Bacterial Foraging Optimization is used to implement real world
Job Shop Scheduling Problems
5th International Conference on Machine Learning and Soft Computing (MLSC 2024)ijpla
5th International Conference on Machine Learning and Soft Computing (MLSC 2024) will provide an excellent international forum for sharing knowledge and results in theory, methodology and applications Machine learning and Soft Computing. The aim of the conference is to provide a platform to the researchers and practitioners from both academia as well as industry to meet and share cutting-edge development in the field.
International Journal of Programming Languages and Applications ( IJPLA )ijpla
International Journal of Programming Languages and Applications (IJPLA) is a Quarterly peer-reviewed and refereed open access journal that publishes articles which contribute new results in all areas of the Programming Languages and Applications. This journal is dedicated to the distribution of research results in the areas of Programming Languages and Applications. Programming Languages
3rd International Conference on Computing and Information Technology Trends (...ijpla
3rd International Conference on Computing and Information Technology Trends (CCITT 2024) will provide an excellent international forum for sharing knowledge and results in theory, methodology and applications of Computing and Information Technology Trends. The Conference looks for significant contributions to all major fields of the Computer Science, Compute Engineering, Information Technology and Trends in theoretical and practical aspects.
HIGH-LEVEL LANGUAGE EXTENSIONS FOR FAST EXECUTION OF PIPELINE-PARALLELIZED CO...ijpla
The last few years have seen multicore architectures emerge as the defining technology shaping the future
of high-performance computing. Although multicore architectures present tremendous performance
potential, to realize the true potential of these systems, software needs to play a key role. In particular,
high-level language abstractions and the compiler and the operating system should be able to exploit the
on-chip parallelism and utilize underlying hardware resources on these emerging platforms. This paper
presents a set of high-level abstractions that allow the programmer to specify, at the source-code level, a
variety to of parameters related to parallelism and inter-thread data locality. These abstractions are
implemented as extensions to both C and Fortran. We present the syntax of these directives and also
discuss their implementation in the context of source-to-source transformation framework and autotuning
system. The abstractions are particularly applicable to pipeline parallelized code. We demonstrate the
effectiveness of these strategies of a set of pipeline parallel benchmarks on three different multicore
platforms.
Research Paper Submission- 5th International Conference on Machine Learning a...ijpla
Research Paper Submission..!!
Free Publication for Extended papers
5th International Conference on Machine Learning and Soft Computing (MLSC 2024)
February 24 ~ 25, 2024, Vancouver, Canada
Webpage URL: https://acsty2024.org/mlsc/index
Submission Deadline: December 02, 2023
Selected papers from MLSC 2024, after further revisions, will be published in the special issues of the following journals.
Machine Learning and Applications: An International Journal (MLAIJ)
International Journal on Soft Computing (IJSC)
Information Technology in Industry (ITII)
Submission System Link: https://acsty2024.org/submission/index.php
Contact us:
Here's where you can reach us : mlsc@acsty2024.org or mlsc.conf@yahoo.com
Submit Your Articles- International Journal of Programming Languages and Appl...ijpla
International journal of Programming Languages and applications is dedicated to the distribution of research results in the areas of Programming Languages and applications.
Authors are solicited to contribute to the journal by submitting articles that illustrate research results, projects, surveying works and industrial experiences that describe significant advances in the areas of Programming Languages.
Formal treatments of inheritance are rather scarce and those that do exist are often more suited for
analysis of existing systems than as guides to language designers. One problem that adds complexity to
previous efforts is the need to pass a reference to the original invoking object throughout the method call
tree. In this paper, a novel specification of inheritance semantics is given. The approach dispenses with
self-reference, instead using static and dynamic scope to accomplish similar behaviour. The result is a
methodology that is simpler than previous specification attempts, easy to understand, and sufficiently
expressive. Moreover, an inheritance system based on this approach can be implemented with relatively
few lines of code in environment-passing interpreters.
Research Paper Submission- International Conference on Computer Science, Info...ijpla
International Conference on Computer Science, Information Technology & AI (CSITAI 2023) will provide an excellent international forum for sharing knowledge and results in theory, methodology and applications of Computer Science, Information Technology and Artificial Intelligence. The Conference looks for significant contributions to all major fields of the Computer Science, Information Technology and AI in theoretical and practical aspects. The aim of the conference is to provide a platform to the researchers and practitioners from both academia as well as industry to meet and share cutting-edge development in the field.
Research Paper Submission-3rd International Conference on Computing and Infor...ijpla
Research Paper Submission..!!!
Free Publication for Extended papers
3rd International Conference on Computing and Information Technology Trends (CCITT 2024)
January 13-14, 2024, Virtual Conference
https://ccitt2024.org/
Submission Deadline: November 18, 2023
Selected papers from CCITT 2024, after further revisions, will be published in the special issues of the following journals.
International Journal of Artificial Intelligence & Applications (IJAIA)
International Journal on Computational Science & Applications (IJCSA)
International Journal on Bioinformatics & Biosciences (IJBB)
International Journal On Cryptography And Information Security (IJCIS)
International Journal of Fuzzy Logic Systems (IJFLS)
International Journal of Mobile Network Communications & Telematics (IJMNCT)
International Journal of Programming Languages and Applications (IJPLA)
International Journal of Embedded Systems and Applications (IJESA)
Submission System URL:
https://ccitt2024.org/submission/index.php
Contact Us:
Here's where you can reach us : ccitt@ccitt2024.org or ccittconf@yahoo.com
Submit Your Articles- International Journal of Programming Languages and Appl...ijpla
Submit Your Articles...!!!
International Journal of Programming Languages and Applications ( IJPLA )
Website URL:http://airccse.org/journal/ijpla/ijpla.html
Submission Deadline: November 19, 2023
Submission URL - https://airccse.com/submissioncs/home.html
Contact Us: Here's where you can reach us : ijplajournal@yahoo.com (or) ijplajournal@wireilla.com
Submit Your Articles- International Journal of Programming Languages and Appl...
5215ijpla01
1. International Journal of Programming Languages and Applications ( IJPLA ) Vol.5, No.2, April 2015
1
ENHANCED SPREADSHEET COMPUTING WITH FINITE-
DOMAIN CONSTRAINT SATISFACTION
Ezana N. Beyenne and Hai-Feng Guo
Department of Computer Science, University of Nebraska at Omaha
Omaha, NE 68182-0500, USA
ABSTRACT
The spreadsheet application is among the most widely used computing tools in the modern society. It
provides great usability and usefulness, and it easily enables a non-programmer to perform programming-
like tasks in a visual tabular “pen and paper” approach. However, due to its mono-directional dataflow,
spreadsheets are mostly limited to bookkeeping-like applications. This paper shows how the spreadsheet
computing paradigm is extended to break through this limitation for solving constraint satisfaction
problems. We present an enhanced spreadsheet system where finite-domain constraint solving is well
supported in a visual environment. A spreadsheet-specific constraint language is constructed for general
users to specify constraints among data cells in a declarative and scalable way. The new spreadsheet
system significantly simplifies the development of many constraint-based applications using a visual
tabular interface. Examples are given to illustrate the usability and usefulness of the extended spreadsheet
paradigm.
KEYWORDS
Spreadsheet computing, Finite-domain constraint satisfaction, Constraint logic programming
1.INTRODUCTION
Due to its great usability and usefulness, the spreadsheet application has been widely used in the
modern computing society. It easily enables a nonprogrammer perform programming-like tasks,
such as personnel information management, computerized bookkeeping, and electronic financial
planning, in a tabular “pen and paper” approach. Each cell in a spreadsheet may contain a value
in some data type or a formula which depends on other cells; then when the other cells are
updated, the dependent cell is automatically updated as well. Such a mono-directional dataflow
makes the spreadsheets fairly easy for general users to understand and manipulate. However, it
also hampers the further uses of spreadsheets on many daily-life constraint problems, such as
resource allocation, task scheduling, and timetabling problems.
A few research efforts have been conducted to extend spreadsheets with more powerful
computational tools for solving domain-specific problems. For instance, the spreadsheet interface
for sales/products configuration system [7] was developed by incorporating a light-weight
constraint satisfaction solver (ILOG Solver) as an MS Excel add-on. PrediCalc [12] is a
spreadsheet system which allows general logical constraints for data management systems;
logical constraints, constructed using cell names and the usual logical connectives and the
quantifiers, are used to maintain the consistency among databases. IntervalSolver [10] is a
spreadsheet extension that allows users to take uncertainties of values into account by using
intervals; it is capable of dealing with rounding errors, imprecise data and numerical constraints
on intervals.
2. International Journal of Programming Languages and Applications ( IJPLA ) Vol.5, No.2, April 2015
2
More general extensions combine a spreadsheet paradigm with other programming paradigms,
such as constraint logic programming. PERPLEX [2] is a programming environment combining
the power of logic programming with the spreadsheet interface; it allows users to define
predicates among data cells in an interactive way. NExSched [6] is a spreadsheet interface for
solving constraint satisfaction problems following the knowledge-sheet paradigm [9]; it
incorporates a finite-domain constraint solver (SICStus) as a plug-in for Microsoft Excel.
NEXCEL [4, 5, 15] proposed a deductive extension of the spreadsheet paradigm for reasoning
and decision-making applications; it allows users to define logical inference rules for symbolic
reasoning, and values satisfying them are visualized on the fly and propagated to any cells which
depend on them.
All of these extensions essentially provide a spreadsheet interface for constraint (logic)
programming or solving domain-specific problems, which require that the defined predicates,
constraints, and inference rules follow the correct syntax of underlying programming paradigm.
In other words, it requires users to have certain programming skills or experiences on solving
domain-specific problems. Those extensions certainly improve the usefulness of spreadsheets;
however, without improving the usability at the same time, all extensions are nearly inaccessible
to mainstream spreadsheet users. From this point of view, unless the extensions attract
mainstream spreadsheet users, the practical contribution of these extensions is limited since
domain experts would rather use an underlying programming paradigm directly. For this reason,
it is very important to have a user-centric approach to functions in Excel. As emphasized in [11]
by Jones, et al., “the commercial success of spreadsheets is largely due to the fact that many
people find them more usable than programming languages for programming-like tasks.”
In this paper, we present a development framework that incorporates spreadsheets with a finite-
domain constraint programming paradigm, where each spreadsheet cell can be attached to a finite
domain or a constraint specifying the relation among cells. For an experienced programmer,
scalability issues are usually handled nicely by either recursion or loop statements. However, for
a general spreadsheet user, a larger-size problem usually requires large number of constraints to
be specified without the assistance of recursion or loops. This can make the spreadsheet interface
impractical and quite error-prone for constraint programming. Therefore, we provide a set of new
functions for spreadsheet users to specify the constraints among data cells in a declarative and
scalable way. The new framework significantly simplifies the development of many constraint-
based applications using a visual spreadsheet interface.
We developed an extension tool, named CSeE (Constraint Satisfaction extended Excel), between
Microsoft Excel and SWI Prolog. This work focuses on merging the CLP(FD)1
paradigm with the
Excel’s spreadsheet paradigm in such a way that it hides the complexities of CLP(FD) by
providing an add-in to Excel in the form of menus and function extensions. These menus and
functions will enable the end users to specify constraints that will interact with a back-end
constraint solver (SWI Prolog). The general user will be able to use the extended spreadsheet to
explore new ways of solving many problems (e.g., scheduling problems, puzzle solving, etc.) that
have previously proved to be an arduous, time-consuming task and also were inaccessible due to
syntactic and semantic complexities. The extended spreadsheet will become an even more
indispensable tool in solving previously complex and error-prone problems that they encounter in
their daily lives. The CSeE tool also provides an interface for an experienced constraint
programmer to define new predicates and propagation rules. .
3. International Journal of Programming Languages and Applications ( IJPLA ) Vol.5, No.2, April 2015
3
Recently, a new Excel solver [16, 17] has been proposed as an education platform for
management science. The solver delivers great usability and quality on solving optimization,
simulation, and decision science problems. Different from the Excel solver, our CSeE system
applies an AI-based reasoning approach and multi-directional dataflow models [1, 13] to solve
general finite-domain constraint satisfaction problems. Our system further provides a set of
spreadsheet-specific constraints in the form of Excel functions to handle large problems in a
declarative and scalable way.
The remaining parts of this paper are organized in the following way: Section 2 gives a brief
introduction of constraint programming. Section 3 shows the architectural design of the CSeE
system, which enhances the Microsoft Excel system with a spreadsheet-specific constraint
language (SSCL) and constraint satisfaction capability. Section 4 introduces the syntax and
informal semantics of the SSCL constraints. Section 5 explains how the constraints defined in the
spreadsheet layer are integrated to an executable constraint logic program. Three constraint-based
spreadsheet applications are given in Section 6 to illustrate the usability and usefulness of the
CSeE tool. Finally, the conclusion and future extensions are addressed in Section 7.
2. CONSTRAINT PROGRAMMING
Constraint programming (CP) [1, 13] is a computational programming paradigm for formulating
and solving problems based on constraints. A constraint is a description of the logical relation
among several variables, where each variable takes values from a given domain. A constraint is
therefore used to determine the values that variables can take, representing some partial
information about related variables.
Constraints are a natural medium to express all sorts of daily reasoning problems. For example,
the following constraints can be used to describe a relation among the three angles (A1, A2 and the
right angle A3) in a right triangle:
A1 + A2 + A3 = 180 and A3 = 90,
and a simple loan can be represented as
B = P + I × P,
where B, I, and P are the final balance, the interest rate, and the principal of the loan, respectively.
CP is an emergent software technology for specifying and solving many types of combinatorial
and optimization problems in a declarative yet effective way. The idea of constraint programming
is to model and solve problems by specifying constraints which must be satisfied in the problems.
An important characteristic of constraint programming is its declarative nature. A CP
programmer does not need to specify the computational procedure that should be used to enforce
the constraints; rather, they just state what constraints must hold and leave them up to a
computational system to solve.
In this paper, we focus on an important domain of constraints, called finite-domain constraints,
since probably more than 95% of the current industrial constraint applications use finite domains
[1]. Constraint Satisfaction is an algorithmic study of solving finite-domain constraints by the
Artificial Intelligence community. A Constraint Satisfaction Problem (CSP) can be formally
defined as
• Variables: a set of variables X = { x1, · · · , xn },
4. International Journal of Programming Languages and Applications ( IJPLA ) Vol.5, No.2, April 2015
4
• Domains: for each variable xi, a finite set Di of possible values, and
• Constraints: a set of constraints restricting the values that the variables can take
simultaneously.
Constraint satisfaction is to find solutions of a CSP by assigning each variable a value from its
domain, which satisfy all the constraints. Often there are multiple solutions that satisfy the
constraints. In an optimization problem, one can specify a criterion to choose the optimal solution
among the solution choices.
Example 1. The Knapsack Problem: A smuggler has a knapsack that has limited capacity of
only 9 units. He can smuggle bottles of whiskey of consisting of 4 units, perfume bottles of 3
units and 2 unit cartons of cigarettes. The profit from smuggling a bottle of whiskey is $15, while
a bottle of perfume is $10 or a carton of cigarettes is $7. The smuggler can only make the trip if
he can make a profit of greater than or equal to $30. What are the combinations that will
maximize his profit?
A constraint program, solving the Knapsack problem, is shown as follows:
domain([W,P,C], 0, 9), (1)
4*W + 3*P + 2*C <= 9, (2)
15*W + 10*P + 7*C >= 30, (3)
maximize(labeling([W,P,C]), 15*W + 10*P + 7*C). (4)
The structure of the program follows the definition of a constraint satisfaction problem. Line (1)
introduces a set of variables {W, P, C}, denoting the quantities of whiskey bottles, perfume
bottles, and cigarette cartons to smuggle and also defines their domains, an integral range from 0
to 9. The rest of code specifies the constraints declared in the problem, where the last line is an
optimization predicate to search the value space of {W, P, C} to maximize the profit objective, 15
∗ W + 10 ∗ P + 7 ∗ C. The built-in predicate labeling(L) assigns concrete possible values to the
variables in L from their given domains.
To find more detailed introduction and algorithms on constraint satisfaction, please refer to [1,
13].
3. THE CSEE SYSTEM — DESIGN ARCHITECTURE
The CSeE system enhances the Microsoft Excel with a spreadsheet-specific constraint language
(SSCL) and constraint satisfaction capability. The enhancement is currently implemented as a
COM Add-In for MS Excel 2003 developed using the C# and Visual Studio Tools for Office
(VSTO) 2005. The spreadsheet-specific constraint language (SSCL) is a set of easy-to-use Excel
functions, which can easily be scaled to specify large problems in a consistent form. We use the
SWI-Prolog as the back-end constraint solver. The bi-directional communication between the
Excel and SWI-Prolog is achieved by language processing and transformation techniques.
The overall architecture of our CSeE system is shown in Figure 1. The user-centric design of the
architecture focuses on both the usability and usefulness of the system. The new Excel
spreadsheet provides menus, submenus, and access to spreadsheet-specific constraint language
(SSCL), in a form of Excel functions, to allow users to model and program constraint satisfaction
problems in a scalable yet similar visual manner of using Microsoft Excel. The language
processing layer parses the spreadsheet cell inputs, compiles to the objective CLP code, and
integrates the compiled code with a pre-defined CSeE library for SWI-Prolog to generate an
5. International Journal of Programming Languages and Applications ( IJPLA ) Vol.5, No.2, April 2015
5
executable CLP program. Additionally, the language processing layer decomposes the query
result, which is returned from the constraint solver, into cell values, so that the spreadsheet will
be properly updated with solutions.
Figure 1: The CSeE System Architecture
The constraint solver layer is comprised of a .NET wrapper, named CSeEWrapper, which acts as
the communication channel between the SWI Prolog and other applications in the .NET
framework. The CSeEWrapper is a class that wraps the SWI Prolog’s plcon.exe window using
the .NET 2.0’s System.Diagnostics.Process namespace, thereby enabling the CSeE System to
interface with SWI-Prolog. Rich class libraries, templates, languages and technologies make the
.NET framework an ideal platform for developing both the communication interface and Office
applications. In addition to reusability, the framework allows developers to use a multitude of
languages, such as C# or VB.NET, to manipulate the Office application’s object model and
interface with third party software in a seamless managed environment. One such library
provided by the .NET Framework’s is the System Diagnostics library, which is used to wrap
SWI-Prolog’s command window. The library provides functionality to send data (e.g., programs
generated from the parser, queries) and receive data (e.g., results from the parser) from SWI-
Prolog’s command window, in a synchronous mode. It also allows the SWI-Prolog functionality
to be ported to other .NET applications.
4. SPREADSHEET-SPECIFIC CONSTRAINT LANGUAGE (SSCL)
Spreadsheets are a popular paradigm due to their ease of use and usefulness that has enabled non-
programmers to perform programming like tasks in a familiar tabular “pen and paper” setting. For
the same reason, we present a spreadsheet-specific constraint language (SSCL) for general users
to specify constraint satisfaction problems over the Excel spreadsheets. The SSCL language
provides familiar and concrete representations of domain variables and their values, as well as
constraints on these domains in the form of functions. Typically, constraint logic programming
relies on control statements, such as recursion, to handle large-scale problems. Without the aid of
recursion, spreadsheet users will find that as the scale of the problem increases, a larger number
of constraints must be specified to solve constraint satisfaction problems. The SSCL adds the
benefit of hiding the syntactic and semantic complexity of constraint logic programming, while at
6. International Journal of Programming Languages and Applications ( IJPLA ) Vol.5, No.2, April 2015
6
the same time providing flexibility to specify large-scale applications. The SSCL introduces a set
of constraint functions that will allow users to specify constraints that exist among cells in a
declarative and scalable way.
The design of SSCL follows the basic principle of defining a constraint satisfaction problem,
which includes a set of finite-domain variables and a finite set of constraints defined over them.
Besides standard use of the spreadsheet cell, each cell can further be attached to
• a finite domain; a spreadsheet cell, which is attached to a finite domain, is often called a
cell variable;
• a constraint describing the relationship that exists among other cell variables;
• an optimization constraint; or
• a variable/constraint range specification.
We describe the syntax and informal meaning of the SSCL constraints in the follow subsections.
Each SSCL constraint has a prefix of ss, and its syntactic conventions in regard to the MS Excel
cell range is consistent to Excel’s A1 reference style [3], which refers to column headings starting
with letters beginning from A through IV ( a total of 256 columns) and refers to row headings
consisting of numbers from 1 through 55,536. For example, A1 refers to the cell in column A and
row 1; and B5:E10 refers to the range of cells in columns B through E and rows 5 through 10.
4.1. Domain Specification
The finite domain can be specified individually on a cell (e.g., A1) as follows:
• an integer list (or an integer): The cell variable A1 can take a value in an integer list
within a pair of square brackets (e.g., a list [2, 5, 7]).
• Lower..Upper: The cell variable A1 can take an integer value between Lower and Upper;
for example, 2..5 means an integer list [2, 3, 4, 5].
The finite domain can also be specified for a cell range using a domain constraint, in a form of
ssDomain(CellRange, Min, Max) or ssDomain(CellRange, IntegerList), where each cell variable
in CellRange can take a value from the specified finite domain. For example, ssDomain(A1:H8,
0, 1) defines Boolean variables among cells A1 through H8.
4.2. Constraint Specification
A constraint describes a relation among cell variables that a solution must satisfy. Let A1 and B2
be two cell variables whose domains are set to 1..10. Thus, A1+4 < B2 is a finite-domain
arithmetic constraint. Using consistency techniques [1, 13] in the constraint solver SWI Prolog,
the CSeE system is able to automatically reduce the domains of A1 and B2 to 1..5 and 6..10,
respectively. The consistency techniques can discover and remove all of the invalid values. For
example, 6 is invalid in A1’s domain because there is no value from the domain of B2 to support
the constraint 6 + 4 < B2. Therefore, 6 is removed from A1’s domain automatically.
4.2.1. Spreadsheet-Specific Constraints
Besides the regular relational constraints and symbolic arithmetic expressions supported directly
by SWI-Prolog [14], the SSCL language provides a set of spreadsheet-specific constraints defined
as follows:
7. International Journal of Programming Languages and Applications ( IJPLA ) Vol.5, No.2, April 2015
7
• ssNthElement(N, L, V): V is constrained to be equal to the N-th element of the list L,
where V is a cell variable, and L is a list of integers or a cell variable range.
• ssAllDifferent(CTL:CBR): All cell variables in the cell range from the top left cell, CTL, to
the bottom right cell, CBR, are pairwise non-equal.
• ssRowsAllDifferent(CTL:CBR): The cell variables in each same row, within the cell range
CTL:CBR, are pairwise non-equal. For example, ssRowsAllDifferent(A1:C2) is equivalent to
•
A1 ≠ B1, A1 ≠ C1, B1 ≠ C1,
A2 ≠ B2, A2 ≠ C2, B2 ≠ C2.
• ssColsAllDifferent(CTL:CBR): The cell variables in each same column, within the cell
range CTL:CBR, are pairwise non-equal.
• ssDiagonalsAllDifferent(CTL:CBR): The cell variables in each diagonal cells, within the
cell range CTL:CBR, are pairwise non-equal. For example, the following constraint
ssDiagonalsAllDifferent(A1:D3) is equivalent to
A2 ≠ B3,
A1 ≠ B2, A1 ≠ C3, B2 ≠ C3,
B1 ≠ C2, B1 ≠ D3, C2 ≠ D3,
C1 ≠ D2.
• ssBackDiagonalsAllDifferent(CTL:CBR): The cell variables in each same back-diagonal
cells, within the cell range CTL:CBR, are pairwise non-equal.
• ssRowsAggregate(ArithOp, CTL:CBR, RelOp, IntList): The values of all cell variables
in i-th same row, within the range of CTL:CBR, are aggregated together using the binary arithmetic
operator ArithOp, and the result has the binary relation RelOp with the i-th integer in the list
IntList. For example, ssRowsAggregate(+, A1:C2, <, D1:D2) means that
A1 + B1 + C1 < D1, A2 + B2 + C2 < D2.
If all of the integers in the IntList are same, they can be replaced with a single integer. For
example, ssRowsAggregate(+, A1:C2, <=, 10) means that
A1 + B1 + C1 ≤ 10, A2 + B2 + C2 ≤ 10.
• ssColsAggregate(ArithOp, CTL:CBR, RelOp, IntList): The values of all cell variables in
i-th same column, within the range of CTL:CBR, are aggregated together using the binary arithmetic
operator ArithOp, and the result has the binary relation RelOp with the i-th integer in the list
IntList.
• ssDiagonalAggregate(ArithOp, CTL:CBR, RelOp, IntList): Similar to the previous
constraint, except that ssDiagonalAggregate/4 applies aggregation on each same diagonal cells.
For example, ssDiagonalAggregate(+, A1 : C2, >, [2,5,4,6]) is equivalent to
A2 > 2, A1 + B2 > 5, B1 + C2 > 4, C1 > 6.
• ssBackDiagonalAggregate(ArithOp, CTL:CBR, RelOp, IntList): Similar to the previous
constraint, except that ssBackDiagonalAggregate/4 applies aggregation on each same back-
diagonal cells.
• ssPairsOp(C1TL:C1BR, ArithOp, C2TL:C2BR, RelOp, IntList): This constraint is used to
apply the binary operator ArithOp on each pairwise i-th operands from the cell ranges C1TL:C1BR
8. International Journal of Programming Languages and Applications ( IJPLA ) Vol.5, No.2, April 2015
8
and C2TL:C2BR, and the result has the binary relation RelOp with the i-th integer in the list IntList.
For example, ssPairsOp(A1:B2, *, C1:D2, =, E1:F2) equals to
A1 * C1 = E1, B1 * D1 = F1, A2 * C2 = E2, B2 * D2 = F2.
4.2.2. Optimization Constraints
• ssMin(V): The minimal optimization constraint is used to find a solution to the constraint
problem, where the value of the cell variable V is minimized.
• ssMax(V): The maximal optimization constraint is used to find a solution to the
constraint problem, where the value of the cell variable V is minimized.
4.2.3. Variable/Constraint Range Specification
Users are required to specify the ranges of the cell variables and constraints, so that the CSeE
system could easily identify all the finite-domain cell variables and their related constraints. The
absence of these specifications will require the parsing of the entire spreadsheet or special
indication of each constraint (e.g., within a pair of squared brackets); however, both alternatives
could cause unnecessary ambiguous issues. Hence, we introduce two extra constraints as follows:
• ssVarRange(CellRange): The cell variables are located in CellRange, where multiple
ranges can be put together; e.g., ssVarRange([A1:C3,E6:F9,G10]).
• ssConstraintRange(CellRange): The constraints are located in CellRange.
5. Language Processing Layer
The spreadsheet language processing layer gathers all the necessary input information (namely,
cell variables, domains and constraints), parses through the Excel’s A1 reference style [3],
transforms the spreadsheet-specific constraints into SWI-Prolog’s syntax, and integrates with the
pre-defined CSeE library for SWI-Prolog into an executable CLP program. The language
processing layer is also responsible for extracting and formatting values for each cell variable
once the answers are returned from the constraints solver. In this section, we mainly address the
transformation rules, the CSeE library, and program integration in details.
5.1. Cell Range Transformation
We first introduce transformation rules to convert a cell range in Excel’s styles into a list of
variables. As shown in Figure 2, given an input of a cell range C, the function varList(C) creates a
list L of cell variables, and the function varListByRow(C), where C is in the form of CTL : CBR,
creates a list L containing sub-lists of cell variables grouped by rows. For example,
varListByRow(A1:B3) returns [[A1,B1],[A2,B2],[A3,B3]]. Similarly, the following
transformation functions are defined as well:
• varListByCol(CTL : CBR) creates a list containing sub-lists of cell variables grouped by
columns.
• varListByDiag(CTL : CBR) creates a list containing sub-lists of cell variables grouped by
diagonals. For example, the constraint varListByDiag(A1:B3) returns a nested list
[[A3],[A2,B3],[A1,B2],[B1]].
9. International Journal of Programming Languages and Applications ( IJPLA ) Vol.5, No.2, April 2015
9
• varListByBackDiag(CTL : CBR) creates a list containing sub-lists of cell variables
grouped by back diagonals. For example, the constraint varListByBackDia(A1:B3) returns a list
[[A1],[A2,B1],[A3,B2],[B3]].
Figure 2: Algorithms of varList and varListByRow
5.2. Constraint Transformation
In this subsection, we describe the major transformation rules, itemized as follows, from the
spreadsheet cell inputs to the SWI-equivalent constraints. The transformation function is
described in a form of
where Intermediate Steps are the auxiliary functions to make the transformation happen. We
focus on those transformation rules which are particularly related to spreadsheets, and the rules
for those constraint inputs which are not listed below are defined in a similar way.
• domain2swi converts a domain specification ssDomain to a SWI constraint using
the following two rules, where ← means assignment. The finite domain (e.g., a single
integer V, or a range Min..Max) can also be specified individually on a cell C. In such
cases, constraints (e.g., C = V or C in Min..Max) for each cell C will be created.
• allRowDiff2swi converts the spreadsheet constraint ssRowsAllDifferent to an
SWI equivalent as follows, where the predicate subListAllDifferent/1, pre-defined in the
CSeE library for SWI-Prolog, means that the values for the cell variables in each sublist
are all different.
• allDiaDiff2swi converts the constraint ssDiagonalsAllDifferent in a similar way,
except calling the rule varListByDiagonal. So are allColDiff2swi and allBDiaDiff2swi
10. International Journal of Programming Languages and Applications ( IJPLA ) Vol.5, No.2, April 2015
10
for converting constraints ssColsAllDifferent and ssBackDiagonalsAllDifferent,
respectively, to the same SWI predicate subListAllDifferent/1.
• rowsAgg2swi is defined as follows, where subListAggregate/4 is defined in the
CSeE library to aggregate the items among each sublist using given binary operators Bo
and Ro.
• diaAgg2swi is defined in a similar way for the constraint on diagonal
aggregation. So are colsAgg2swi and bdiaAgg2swi for converting the constraints on
column aggregation and back diagonals, respectively, to the same subListAggregate/4.
• pairsOp2swi is for ssPairsOp, where the SWI predicate pairAggregate/5 is
defined in the CSeE library to apply the arithmetic operator Bo on each pairwise items in
lists L1 and L2, and then connects to the corresponding item in the list L3 by applying the
relation operator Ro.
5.3. The CSeE Library for SWI-Prolog
The CSeE system provides a module file, named “csee.pl”, for SWIProlog. The module file
contains a set of built-in predicates, such as subListAllDifferent/1 and subListAggregate/4 shown
below, which will be loaded automatically when the Prolog engine is started:
:- module(csee, [ subListAllDifferent/1,
subListAggregate/4,
pairsAggregate/5, ... ]).
subListAllDifferent([ ]).
subListAllDifferent([F | R]) :-
all_different(F),
subListAllDifferent(R).
pairsAggregate([ ], _, [ ], _, _).
pairsAggregate([F1|T1],B,[F2|T2],R,[F|T]) :-
X1 =.. [B,F1,F2],
X2 =.. [R,X1,F],
X2,
11. International Journal of Programming Languages and Applications ( IJPLA ) Vol.5, No.2, April 2015
11
pairsAggregate(T1,B,T2,R,T).
subListAggregate(B, [ ], _, __).
subListAggregate(B, [F1|T1], R, [F2|T2]) :-
aggregate(B, F1, R, F2),
subListAggregate(B, T1, R, T2).
aggregate(B,[F|T],R,V) :-
aggrConstraint(B,T,F,S),
S1 =.. [R, S, V],
S1.
aggrConstraint(_, [ ], S, S).
aggrConstraint(B,[F|T],S1,S2) :-
S3 =.. [B, S1, F],
aggrConstraint(B, T, S3, S2).
... ...
The CSeE system allows users with CLP programming experience to access the CSeE library for
pre-defining other useful built-in predicates and adding constraint handling rules [8, 14] for
spreadsheet-related constraints. The module/2 directive declares the module name, and the public
(i.e., external visible) predicates of the module.
5.4. Program Integration
The CSeE system searches automatically two required constraints: ssVarRange(CR1) and
ssConstraintRange(CR2), for constructing a complete specification for a constraint satisfaction
problem. With the set of all cell variables, specified by the cell range CR1, and the set of
constraints, specified by CR2, the CSeE system can easily integrate all the finite-domain cell
variables and the defined constraints into an executable CLP program.
The structure of the integrated program is in a form as follows:
:- use_module(library(clpfd)).
:- use_module(library(csee)).
main(L) :- <S1>,
labeling([<S2>], L).
where <S1> is a set of generated constraints, <S2> is the optimization indicator, and L is a list of
cell variables corresponding to the cell range CR1. For each value in both cell ranges CR1 and
CR2, the system applies a corresponding constraint transformation rule described in Section 5.2
on the cell value and appends the converted result into the set <S1>. The optimization indicator
<S2> is determined by the user constraint ssMin(V) or ssMax(V) if any. Otherwise, <S2> will be
empty. The finite-domain solver module and the CSeE module are loaded at the beginning of the
program.
12. International Journal of Programming Languages and Applications ( IJPLA ) Vol.5, No.2, April 2015
12
6. EXAMPLES
We demonstrate how the CSeE system allows the EXCEL user to extend the spreadsheet’s ability
to solve certain constraint satisfaction problems. The examples include Sudoku, 8-Queen, and a
resource allocation problem.
6.1. The 8-Queen Problem
The 8-Queen problem deals with finding all the ways of placing eight queens on a square 8 × 8
chess board, in such a way that no two queens are on the same row, column, diagonal, or back-
diagonal. We use the cell matrix from A1 to H8 to represent the 8 × 8 chess board and numbers 1
and 0 in the cell to represent a queen and no queen, respectively. Figure 3 shows the Excel
interface for the 8-Queen problem.
Figure 3: An Excel interface for specifying the 8-Queen problem
The constraints ssVarRange(A1:H8) and ssConstraintRange(J4:J8) are required by the CSeE
system to specify the ranges of cell variables and other constraints, respectively. As shown in the
figure, we highlighted the cell matrix from A1 to H8 as they are cell variables. The constraint
ssDomain(A1:H8, 0, 1) is used to set the domain of the cell variables to a binary domain.
ssRowsAggregate(+,A1:H8,#=,1) means that there is one and at most one queen for each row;
similar is ssColsAggregate(+,A1:H8,#=,1) for each column. The relational operators #= and #=<
are equivalent to = and =<, respectively. The constraint ssDiagonalAggregate(+,A1:H8,#=<,1)
means that there is at most one queen for each diagonal; similarly,
ssBakDiagonalAggregate(+,A1:H8,#=<,1) is for each back diagonal.
Figure 4: An EXCEL interface after solving the 8-Queen problem
Figure 4 shows an interface where the constraints have been solved. As shown in the figure, the
CSeE system provides an add-in menu, named “CSeE system”, and a set of sub-menus, which are
responsible for communication between the spreadsheet layer and the constraint solving layer:
13. International Journal of Programming Languages and Applications ( IJPLA ) Vol.5, No.2, April 2015
13
• The “Parse/Build” menu item performs the following events sequentially: (i) check if the
ranges of cell variables and constraints have been specified; (ii) check if the constraints are
specified in a correct syntax; (iii) integrate all the inputs into an executable CLP program; (iv) run
the program on the SWI-Prolog; and (v) update the spreadsheet properly once answers to the
constraint satisfaction problem are generated and returned from the constraint solver.
• The “Solution Options” sub-menu provides the Excel user with the capability to traverse
different solutions, where the total number of solutions is indicated as well (e.g., 92 solution for
the 8-Queen problem).
• The item “Original State” restores the spreadsheet status before calling the constraint
solver so that the user can revise the constraints for new answers.
• The item “Add to CHRExcel lib” provides experienced CLP users with an interface to
update the CSeE library (e.g., adding new built-in predicates or constraint handling rules) for the
SWI-Prolog.
• The item “CSeE Help” shows the manual document which introduces the features of the
CSeE system and the instructions on how to use the spreadsheet-specific constraint language.
Scalability is an issue we have considered during the design of the SSCL constraint language. For
the 8-Queen program, the constraint specification can actually be easily scaled to larger problem
(e.g., 20-Queen) with very little change as follows:
ssDomain(A1:T20, 0, 1)
ssRowsAggregate(+, A1:T20, #=, 1)
ssColsAggregate(+, A1:T20, #=, 1)
ssDiagonalAggregate(+, A1:T20, #=<, 1)
ssBackDiagonalAggregate(+, A1:T20, #=<, 1)
6.2. The Sudoku Puzzle
The Sudoku puzzle is played in a 9 × 9 grid made up of 3 × 3 sub grids, where each grid contains
one instance of digits from 1 to 9. The numbers are entered in such a way that each row, column
and region (a 3 × 3 sub grid) has exactly one instance of the digit ranging from 1 to 9. There are
digits that are already fixed for some cells, and they act as clues that restrict the solution space in
such a way that there is one and only one correct way to populate the remaining regions.
Figure 5: An EXCEL interface for Sudoku
14. International Journal of Programming Languages and Applications ( IJPLA ) Vol.5, No.2, April 2015
14
We use the cell matrix from A1 to I9 to represent the 9 × 9 grid board. Figure 5 shows the
EXCEL interface for the Sudoku problem. The solution will be immediately shown once the
“Parse/Build” is clicked.
6.3. Job Assignment
The third example, as shown in Figure 6, is a simple machine/job assignment problem to
minimize the total cost. In Figure 6, the machine/job costs are shown in Table 1, and the
selection decision will be made in Table 2, including the minimal cost in the cell C16.
The minimization is specified by using the constraint ssMin(C16). Once the
“Parse/Build” is selected, the CSeE system will return a job assignment solution where
the cell variable C16 is minimized. For the example in Figure 6, the minimal cost in the
cell C16 will be 22. The order of constraints does not affect the solutions. Users can
specify those constraints in any cells except those variable cells.
Figure 6: An Excel interface for a job assignment example
7. CONCLUSIONS
Spreadsheet users encounter constraint satisfaction problems on a daily basis. As such, the CSeE
system is a framework incorporating the spreadsheet paradigm with a constraint solver so that it
becomes a useful and indispensable tool for the users. The CSeE’s seamless integration with
Excel and SWI-Prolog, along with its spreadsheet-specific language, extends the usefulness and
usability of the spreadsheet applications, especially for constraint solving problems.
The SSCL spreadsheet-specific constraint language allows users to specify constraints that exist
among the cells in a declarative and scalable way in order to solve constraint satisfaction
problems. Envisioned as a system that has potential for commercial value, the framework
significantly simplifies the complexity involved in developing solutions to many constraint-based
application domains from within the Excel’s spreadsheet interface. In addition, the CSeE system
provides an interface for CLP-experienced users to enhance constraint solving strategies.
15. International Journal of Programming Languages and Applications ( IJPLA ) Vol.5, No.2, April 2015
15
Given constraint satisfaction problems encompass a wide array of application domains, the SSCL
and the spreadsheet-specific library will be further refined and optimized as applications over
these different domains are discovered. Spreadsheet-specific constraint handling rules will be
explored to enhance the CSeE system’s ability to solve large scale spreadsheet-based
applications.
REFERENCES
[1] Bartak, Roman (1999) Constraint Programming: In pursuit of the Holy Grail. In Proceedings of Week
of Doctoral Students (WDS99, invited lecture), pp. 555–564, MatFyz Press, Prague.
[2] Spenke, M. & Beilken C. (1989) A spreadsheet interface for logic programming. In CHI '89:
Proceedings of the SIGCHI Conference on Human Factors in Computing Systems, pp. 75–80, ACM
Press, New York, NY.
[3] Microsoft Office Online Help: About cell and range references. In web link
http://office.microsoft.com/en-us/excel/hp051983231033.aspx.
[4] Cervesato, Iliano (2007) “NEXCEL, a Deductive Spreadsheet.” The Knowledge Engineering Review,
vol. 22, no. 3, pp. 221-236.
[5] Cervestato, Iliano (2006) A spreadsheet for everyday symbolic reasoning. In AAAI 2006 Fall
Symposium on Integrating Reasoning into Everyday Applications, pp. 1–8.
[6] Chitnis, S. & Yennamani, M. & Gupta, G. (2007) Nexsched: Solving constraint satisfaction problems
with the spreadsheet paradigm, Technique Report, University of Texas at Dallas.
[7] Felfernig, Alexander & Friedrich, Gerhard & Jannach, Dietmar & Russ, Christian & Zanker, Markus
(2003) Developing constraint-based applications with spreadsheets. In Proceedings of the 16th
International Conference on Developments in Applied Artificial Intelligence (IEA/AIE), pp. 197–207.
Springer Verlag.
[8] Frühwirth, Thom (1998) “Theory and practice of constraint handling rules.” Journal of Logic
Programming, vol. 37, no. 1-3, pp. 95–138.
[9] Gupta, Gopal & Akhter, Shameem F. (2000) Knowledgesheet: A graphical spreadsheet interface for
interactively developing a class of constraint programs. In PADL '00: Proceedings of the Second
International Workshop on Practical Aspects of Declarative Languages, pp. 308–323. Springer
Verlag.
[10] Hyvönen, Eero & Pascale, S. De (1996) Interval computations on the spreadsheet. In Applications of
Interval Computations, Applied Optimization, pp. 169–209. Kluwer, Dordrecht.
[11] Jones, Simon Peyton & Blackwell, Alan & Burnett, Margaret (2003) A user-centred approach to
functions in Excel. In ICFP '03: Proceedings of the Eighth ACM SIGPLAN International Conference
on Functional Programming, pp. 165–176. ACM Press.
[12] Kassoff, Michael & Zen, Lee-Ming & Garg, Ankit & Genesereth, Michael (2005) Predicalc: A logical
spreadsheet management system. In Proceedings of the 31st International Conference on Very Large
Data Bases (VLDB), pp. 1247–1250.
[13] Marriott, Kim & Stuckey, Peter (1998) Programming with constraints: An introduction. The MIT
Press.
[14] SWI Prolog Online Manual. “http://www.swi-prolog.org/,” as of March 2008.
[15] Ramakrishnan, C.R. & Ramakrishnan, I.V. & Warren, David S. (2006) Deductive spreadsheets using
tabled logic programming. In Proceedings of the 22nd International Conference on Logic
Programming, pp. 391–405.
[16] Ragsdale, Cliff (2007) Spreadsheet Modelling and Decision Analysis: A Practical Introduction to
Management Science. Cengage Learning.
[17] Baker, Kenneth R & Powell, Stephen G. (2007) Management Science: The Art of Modelling with
Spreadsheets. John Wiley & Sons Inc.
16. International Journal of Programming Languages and Applications ( IJPLA ) Vol.5, No.2, April 2015
16
Authors
Ezana N. Beyenne received his B.S. and M.S. from the Computer Science Department of the University of
Nebraska at Omaha in 2006 and 2008, respectively. He has been working in the industry as a software
engineer since 2008. Currently he is a Senior Software Engineer working at Farm Credit Services of
America.
Dr. Hai-Feng Guo received his Ph.D. in Computer Science from New Mexico State University in 2001.
He is currently as Associate Professor in the Computer Science Department of the University of Nebraska
at Omaha. His research interests focus on declarative programming, constraint logic programming, and
software testing.