Cypher (query language)

What is the query language Cypher?

Cypher is a declarative Query language, the for working with graph databases was developed. Graph databases are specialised Databasesthat organise data in the form of nodes and edges in a graph model. Nodes represent entities, while edges represent relationships between entities. One of the leading graph databases is Neo4jfor which Cypher was specially developed.

With Cypher it is possible to search, analyse and manipulate complex patterns and relationships in a graph. Thus, complex queries and operations on graph-based data structures can be performed efficiently and easily. 

Syntax

The syntax of Cypher is Simple and intuitive, which makes it easier to work with graph-based data structures. A basic query consists of a combination of patterns applied to the graph to search for specific Entities or relationships. A pattern in Cypher is usually written in brackets and can consist of nodes, edges or both.

A simple example of a Cypher query looks like this:

MATCH (n:Person)-[:FOLLOWS]->(m:Person)
WHERE n.name = 'Alice
RETURN m.name

This query searches for persons (nodes with the label "Person") followed by a specific person named Alice. The pattern "(n:Person)-[:FOLLOWS]->(m:Person)" indicates that there must be a relationship with the name "FOLLOWS" from a node with the label "Person" to another node with the label "Person". The "WHERE" clause sets a condition for searching for persons named "Alice" and the "RETURN" clause returns the name of the persons found.

Areas of application for Cypher

Cypher is used in various application areas to perform complex queries and operations on graph-based data structures. Here are three common application areas of Cypher:

  • Social network analysisCypher is ideal for analysing social networks, as they are often modelled as graphs. This allows relationships between people, organisations or other entities in a social network to be explored efficiently. For example, queries can be used to identify common friends, influencers or key players in a social network.
  • Recommendation systemsCypher can also be used to create recommendation systems based on graph-based data structures. This will identify complex patterns and relationships between entities to generate personalised recommendations for users. For example, queries in Cypher can be used to find common interests, connections or similar profiles of users to create recommendations for products, services or content.
  • Fighting fraud: Cypher is also used to combat fraud, as it allows complex relationships and patterns in large amounts of data to be analysed. Queries can be created to identify suspicious connections, unusual behaviour patterns or potential fraud networks. This can be used in various industries such as financial services, e-commerce or insurance to detect and prevent fraud at an early stage.

C# (C-Sharp)

What is C# (C-Sharp)

C# (pronounced C sharp) is a modern general, object-oriented programming languagewhich was designed and developed by Microsoft. It was first introduced in 2000 as part of the .NET Framework. C# is a statically typed language, which means that the data types of variables must be declared before they are used. It has a large number of integrated functions and libraries, including support for arrays, which are an important data structure in programming. C-Sharp arrays enable the Storage and processing of large amounts of data and are therefore ideal for complex calculations and computations.

Programming with C# offers many advantages, including its simplicity and readability. C# has a concise and easy to read syntax, which makes it a excellent choice for beginners makes. Furthermore, due to its similarity to other programming languages such as Java and C++, C-Sharp is easy to learn. The built-in garbage collection system also makes writing and managing code easier.

The time needed to learn C-Sharp can vary depending on a person's background and programming experience. However, C# is considered a relatively easy programming language to learn. Most people with previous programming experience can master C# within a few weeks to months. Novice programmers may need a few additional months to learn the language.

What are application areas of C#? (C-Sharp)

C-Sharp is used in a wide range of applications, including desktop applications, video games, mobile applications, web development and Cloud computing. The most common use cases include the Windows desktop application creation, the Games development with popular game engines such as Unity and the Web application creation with ASP.NET. C# is also widely used in back-end web development as it is the main language for Microsoft's web development framework ASP.NET. In addition, C# can be used for cross-platform development with the .NET Core Framework.

Development environments of C# (C-Sharp)

Microsoft Visual Studio

When it comes to development environments, Microsoft Visual Studio is the most popular choice for C# development. Visual Studio is a comprehensive IDE that offers code highlighting, debugging and many other features to help with development. In addition, Visual Studio has a robust set of built-in tools for web development with ASP.NET, making it an excellent choice for web developers.

JetBrains Rider

JetBrains Rider is a cross-platform integrated Development environment for .NET development. It offers a range of powerful features, including code analysis, code completion and debugging. JetBrains Rider also offers integration with many popular version control systems, such as Git, GitHub and TFS. In addition, Rider supports plugins for Unity game development, making it an excellent choice for Unity developers who want to use C-Sharp. Rider offers a free trial period, after which a licence must be purchased.

MonoDevelop

MonoDevelop is an integrated Open source development environment for C-Sharp development, which is available for Linux, macOS and Windows. It offers a range of functions, including code highlighting, code completion and debugging. MonoDevelop also supports plugins, for example for Unity game development. MonoDevelop is an excellent choice for developers who prefer open source tools and want a lean, cross-platform development environment.

C# vs. C++

Compared to C++ has C# has a simpler syntax and is easier to read and write. C++ is a more complex language that requires more detailed knowledge of memory management and low-level programming concepts. In addition, C-Sharp offers a more straightforward approach to programming, making it an excellent choice for beginners and advanced programmers.

C# vs. Python

Compared to Python has C# a more structured and object-oriented approach for programming. Python is a dynamically typed language, which means that the data types of the variables are determined at runtime. C-Sharp is statically typed, which allows better performance and debugging. In addition, C# is better suited for extensive applications, while Python is usually used for scripts and automation.

ChatGPT

What is ChatGPT?

ChatGPT describes a so-called Chatbotwhich is based on artificial intelligence can interact with people. Chatbots are basically able to establish communication between a human and a machine.

ChatGPT was published by its developer OpenAI in November 2022 and is considered the successor to the InstructGPT models. OpenAI is an American company that researches artificial intelligence and is supported by Elon Musk and Microsoft, among others. The non-profit organisation, founded in 2015, also published the GPT-2 and GPT-2 language modules, among others. GPT-3 and the programme DALL-E and its successor, DALL-E 2, which are capable of Machine learning to create images on the basis of text descriptions.

How does the language model work?

While ChatGPT is traded as a sister model of the aforementioned InstructGPT, the algorithm is built on a Model of GPT-3, specifically the GPT-3.5 series. In the latest version, ChatGPT uses the iteration of the model GPT-4.

The language model uses what is known as "reinforcement learning from human feedback (RLHF)", whereby the foundations of the model are laid through supervised learning (supervised learning) are to be laid. For this purpose human trainers used to Training data by taking on the role of both the user and the AI assistant.

In the second step, they assisted in the creation of reward models for reinforcement learning (reinforcement learning) of the model by evaluating the responses generated by the trainers. Based on this, the Reward models through proximal policy optimisation be refined.

Online access

ChatGPT can currently be downloaded from the OpenAI website can be called up and used. After registration by means of an OpenAI account and successful login, the model can be currently limited free of charge or Chargeable without restrictions be used.

OpenAI hopes to receive feedback from users at this stage, as well as user testing of the tool's strengths and weaknesses. The user agreements clarify that the language model may not be used for purposes that infringe on the rights of individuals to discover source code, develop other large-scale models that compete with OpenAI, or declare the data output to be human-generated when it is not.

The language model is designed to communicate with users in dialogue format. It should also be able to answer follow-up questions correctly within a conversation. This is possible because ChatGPT stateful is and is Reminds you of previous promptsThis allows the user to refer to it and it is understood by the language model.

ChatGPT should also be able to reject inappropriate and illegal requests and refuse replies. Limitations in the function the company states in that way by pointing out that the chatbot sometimes generates plausible-sounding but wrong and nonsensical answers. The causes of this behaviour are discussed and justified with the fact that during reinforcement learning there is no source of truth, in supervised learning the knowledge of the human trainer is decisive, and a conservative or more cautious answer policy leads to questions remaining unanswered although the system could answer them correctly. Furthermore, slight changes in the input can lead to a change in the output answer or, in the case of ambiguous queries, the model tries to guess and answer the intended question instead of asking a query.

ChatGPT often provides very extensive responses, as these have been preferred by the trainers and are therefore rewarded more highly. Although the language model is trained to prevent inappropriate requests, this cannot be entirely prevented.

Chatbot

What is a chatbot?

A chatbot is a dialogue system that can establish communication between a human and software. The way it works is that a human enters a message as text input or by means of spoken language and the chatbot responds to it by means of a meaningful answer. In this form, a conversation is to be established in which the bot responds to the message. Databases or through machine learning or Deep Learning is trained and can thus optimise the responses.

To strengthen the appearance of communication with a real counterpart, chatbots are often used together with so-called avatars. This is a virtual person or identity with a photo, name and fictitious human characteristics.

Basically, a distinction is made between 2 types of chatbots. Those that allow free text input and those that are based on rules. In rule-based bots, input options are suggested which can be selected in order to establish communication. Free-text bots, on the other hand, allow free input and are based on the so-called "free text". Natural Language Processing (NLP). This is a method in which machines can understand and interpret human language.

The difficulty lies in the correct interpretation of grammar and the challenge of correctly understanding the meaning and context of sentences. Machine learning is used for this case, whereas this is not necessary when using rule-based bots.

Programming and technical basics

Chatbots can be written in many different programming languages, such as PythonJava or PHP. With a library called "Chatterbot", Python offers a prefabricated framework construct in which Training data are stored in so-called corpora, which bots use for independent learning.

In addition to the possibility of setting up a chatbot on your own, there are also a variety of ready-made open source chatbot development frameworks such as "Microsoft Bot Framework", "IBM Watson" or "Botpress", which can often be created without programming knowledge and also offer interfaces to social services as well as analysis options.

All solutions (whether self-programmed or assembled using an open source modular system) are based on the same principle, responding to a human input with an output with the highest confidence level of the available data and incorporating the quality of the response for subsequent conversations.

Areas of application for chatbots

The areas of application for chatbots are very wide-ranging. For example, they can be used in the following areas:

  • Helpdesk: In this use case, the customer interacts with the chatbot to request a Answer a problem or question. In the first step, this method is intended to replace contact by e-mail or telephone and offers the customer the advantage that, in the event of success (around the clock), he or she is presented with an immediate solution or answer. If the conversation with the bot is unsuccessful, it is often possible to contact the customer via conventional means. Through automatic data collection, the bot learns with each question from a customer and can output this learning in the future.
  • Purchase advice/product recommendation: In online shops, this type of bots, also called Called a service bot, often used to offer "personal" advice based on individual preferences. The bot filters suitable products or services based on the questions asked and answers given and offers them to the customer. In a way, this is intended to correspond to personal advice on the internet and to collect data on preferences and trends through immediate customer feedback.
  • Internal application in the "back officeCompanies can also use bots within their own company without external customer contact. Here they are suitable for example as a contact point for internal questions and also for classifying and categorising messages, contributions or applications. The distribution of messages to responsible employees can also be taken over by bots.

Computational Neuroscience

What is Computational Neuroscience?

Computational neuroscience is used to research how nervous systems process their information. The computer-aided simulation of the nervous system and a lifelike representation of processes in the brain form the basis of computational neuroscience. The processing of sensory impressions is observed.

Neuro-researchers develop mathematical models based on experimentally obtained data, which are finally simulated by neuronal functions on the computer. In the process, predictions of models for neuronal behaviour are experimentally tested and optimised.

Many innovative technologies already benefit from research successes in this field. Knowledge about brain functions can now be used to design intelligent technical aids, such as driver assistance systems, self-learning computers, Robot and also intelligent prostheses. A central goal is that computer models help to recognise and heal brain malfunctions and the causes of diseases at an early stage. Therapeutic approaches can be tested virtually with the help of computational neuroscience and thus help in the continuous further development of real therapies and studies.

What models and foundations does computational neuroscience rely on?

The foundation of computational neuroscience builds on the further development of Artificial intelligence and the model of the artificial neural networks. Artificial neural networks (ANNs) can be seen as mathematical replicas of stimulus processing in the brain. These replicas are interconnected artificial neurons. Instead of electrical or chemical signals from the biological systems, algorithms with numerical values are now processed.

This system is based, for example, on machine vision on. The mathematical modelling is derived from the findings of the Neurosciencebiophysics and the theory of dynamic and complex systems. Because of their complexity, such models can usually only be simulated with the aid of computers. Experimental data often form the basis of these calculations, such as the electrophysiological properties of nerve cells and synapses and the network structures in real nerve networks.