Metadata vocabularies are used in various domains of study. It provides an in-depth description of the resources. In this work, we develop Algorithm Metadata Vocabulary (AMV), a vocabulary for capturing and storing the metadata about the algorithms (a procedure or a set of rules that is followed step-by-step to solve a problem, especially by a computer). The snag faced by the researchers in the current time is the failure of getting relevant results when searching for algorithms in any search engine. AMV is represented as a semantic model and produced OWL file, which can be directly used by anyone interested to create and publish algorithm metadata as a knowledge graph, or to provide metadata service through SPARQL endpoint. To design the vocabulary, we propose a well-defined methodology, which considers real issues faced by the algorithm users and the practitioners. The evaluation shows a promising result.
AMV:Algorithm Metadata Vocabulary
Example competency questions. CQ1: What characteristics or properties are common across all algorithms? CQ2: List all algorithms that compute the solution to problem X along with their types and input. CQ3: Retrieve an algorithm that solves problem X with its details like best case space complexity, best case time complexity, and the problems related to it. CQ4: Retrieve all the algorithms X which are expressed in the form of a flowchart. CQ5: Which Sorting algorithms are derived from the already existing sorting algorithms?
Information about who access the resource or an indication of its security status. Access Rights may include information regarding access or restrictions based on privacy, security, or other policies. Examples of access rights are: Public, Internal, Department (source: https://www.dublincore.org/groups/government/accessRights/)
access rights
An agent who contributes towards the algorithm.
The person who created the algorithm.
author
A related resource that is included either physically or logically in the described resource.(https://www.dublincore.org/specifications/dublin-core/dcmi-terms/#http://purl.org/dc/terms/isPartOf)
A related resource that is a version, edition, or adaptation of the described resource.
A related resource in which the described resource is physically or logically included.(https://www.dublincore.org/specifications/dublin-core/dcmi-terms/#http://purl.org/dc/terms/isPartOf)
A related resource of which the described resource is a version, edition, or adaptation.
The licence under which the algorithm is published.
An entity responsible for making the resource available.
publisher
A related resource. For example, a Sorting problem is related to a problem Convex Hull.
relation
Information about rights held in and over the resource.
rights
A topic of the resource.
Comments, typically from users.
comment
A pointer to another, functionally similar product (or multiple products).
is similar to
An entity that is a generalization of another. E.g., Distribution sort algorithm is a generalization of Bucket sort.
generalization of
had derivation
A primary source for a topic refers to something produced by some agent with direct experience and knowledge about the topic, at the time of the topic's study, without benefit from hindsight. Because of the directness of primary sources, they 'speak for themselves' in ways that cannot be captured through the filter of secondary sources. As such, it is important for secondary sources to reference those primary sources from which they were derived, so that their reliability can be investigated. A primary source relation is a particular case of derivation of secondary materials from their primary sources. It is recognized that the determination of primary sources can be up to interpretation, and should be done according to conventions accepted within the application's domain.
had primary source
had revision
An entity that is specialization of (... is a kind of) another entity and shares all aspects of the later including its own specific aspects. E.g., Bucket sort algorithm is a specialization of (a kind of) Distribution sort.
specialization of
A derivation is a transformation of an entity into another, an update of an entity resulting in a new one, or the construction of a new entity based on a pre-existing entity.
was primary source of
A revision is a derivation for which the resulting entity is a revised version of some original. The implication here is that the resulting entity contains substantial content from the original. Revision is a particular case of derivation.
was revision of
A depiction of some thing.
depiction
The depiction property is a relationship between a thing and an Image that depicts it. As such it is an inverse of the depicts relationship.
depicts
access rights of
affiliation of
An organization that the person is affiliated with. For example, a school/university.
Is an algorithm type for an algorithm.
algorithm type for
The various function types for analysis of algorithms like logarithmic functions, exponential functions etc.
analysis function type
analysis function type of
An algorithm appeared in a publication.
An algorithm for a given problem.
available algorithm
branch Of
comment of
The type of problem the algorithm solves.
Problem that this algorithm or method solves.(https://www.wikidata.org/wiki/Property:P2159)
computes solution to
contributor of
creator of
author of
The data structure used in an algorithm.
form of expression
form Of expression of
has branch
The various applications of the algorithm.
has implementation
has metric
has performance metric
has space complexity
has subalgorithm
a problem that is contingent on or forms a part of another more inclusive problem.
has subproblem
has time complexity
implementation of
output image
The different type of algorithmic techniques that are used to solve the various existing problems in the most optimized manner.This classification is neither exhaustive nor disjoint but highlights the various ways in which a problem can be addressed.
The nature or genre of an algorithm.
is a type of
is input image of
is output image of
license of
The loop best suited for the algorithm.
loop construct
loop construct of
The mathematical concept used to solve the problem.
mathematical property
metric of
input image
performance metric of
In which all language the implementation of the algorithm/ problem is available.
programming language
published in
publisher of
rights of
runs on Operating System
space complexity of
subalgorithm of
A topic of the resource for.
subject of
subproblem of
time complexity of
programming language used in
Date (often a range) that the resource became or will become available.
available
A bibliographic reference for the resource.
bibliographic citation
The date of creation of the algorithm.
A point or period of time associated with an event in the lifecycle of the resource.
Date of submission of the resource.
A statement that represents something in words. It is the act of describing something. The description can include, for instance, the purpose of a thing, the scope, the area of applications of a thing, the history, etc.
An account of the resource.
An unambiguous reference to the resource within a given context.
Date on which the resource was changed.
A name given to the resource (e.g., book, algorithm, research software).
The size of a distribution in bytes.
byte size
A Web page that can be navigated to in a Web browser to gain access to the catalog, a dataset, its distributions and/or additional information.
The version number of a resource.
version
The first name of a person.
first name
A homepage for some thing.
The last name of a person.
last name
A personal mailbox, ie. an Internet mailbox associated with exactly one owner, the first owner of this mailbox. This is a 'static inverse functional property', in that there is (across time and change) at most one individual that ever has any particular value for foaf:mbox.
personal mailbox
The name for some thing.
A page or document about this thing.
The information on access (i.e modify, read, download) to the algorithm.
accessibility
How close the output will be to a set point.
It is the measure of the degree of closeness of a measured or calculated value to its actual value.
acronym
An alternative title of a resource.
alternative title
Space complexity of an algorithm on average.(https://www.wikidata.org/wiki/Property:P3757)
average space complexity
Time complexity of an algorithm on average. (https://www.wikidata.org/wiki/Property:P3754)
average time complexity
Space complexity of an algorithm at least.(https://www.wikidata.org/wiki/Property:P3756)
best case space complexity
Time complexity of an algorithm at least. (https://www.wikidata.org/wiki/Property:P3753)
best case time complexity
Limitations that an algorithm posses.
constraint
Time taken by CPU while executing the program.(In seconds)
cpu time limit
The mathematical formula used for solving the problem. Mathematical formula representing a theorem or law.
defining formula
URL which can be used to download a work.
download link
Input values that require special handling in an algorithm. When using the algorithm at an extreme(maximum or minimum) operating parameters.
edge Case
An excerpt is a contiguous or discontiguous portion, or a passage selected from a larger work or document.
excerpt
First time a subject was mentioned in writing.(https://www.wikidata.org/wiki/Property:P1249)
time of earliest written record
The algorithm written in such a way that it allows to add new features without changing the existing module.
Something that is operated on by any process or system. An algorithm can have zero or more inputs.
input
input description
Unique identifier of the central place where the algorithm is stored.
The number of nested loops in an algorithm.
Total number of steps that the algorithm takes to solve a certain problem.
The complete dataset is required to start processing.
offline algorithm
The data can be feed while processing.
online algorithm
An algorithm is optimal means the time complexity in the worst case is a lower bound of the function that describes the time complexity in the worst case of a problem that the algorithm in question solves.
optimal
output
It is a measure of quality, higher precision means algorithm returns more relevant results than irrelevant ones.
precision
A description providing the problem statement.
problem description
Rating given on the basis of usefulness of a thing.
rating
Is the algorithm readable/understandable to the user.
readable
Provide a description or Link to algorithm, or similar resource "Readme page".
read me
percentage of total relevent result correctly classified by the algorithm.
recall
Space complexity of an algorithm at most.(https://www.wikidata.org/wiki/Property:P3755)
worst case space complexity
Time complexity of an algorithm at most. (https://www.wikidata.org/wiki/Property:P3752)
worst case time complexity
A legal document giving official permission to do something with a Resource.
A statement about the intellectual property rights (IPR) held in or over a Resource, a legal document giving official permission to do something with a resource, or a statement about access rights.
A scholarly academic article, typically published in a journal.
Academic article
A written composition in prose, usually nonfiction, on a specific topic, forming an independent part of a book or other publication, as a newspaper or magazine.
Article
A written or printed work of fiction or nonfiction, usually on sheets of paper fastened or bound together within covers.
Book
A section of a book.
Book Section
A chapter of a book.
Chapter
Book chapter
A document that simultaneously contains other documents.
Collected Document
A collection of Documents or Collections.
Collection
A document (noun) is a bounded physical representation of body of information designed with the capacity (and usually intent) to communicate. A document may manifest symbolic, diagrammatic or sensory-representational information.
The algorithm was published in what kind of literature.
Document
a distinct part of a larger document or collected document.
Document Part
An edited book.
Edited Book
A passage selected from a larger work.
Excerpt
something that is printed or published and distributed, esp. a given number of a periodical.
Issue
A periodical of scholarly journal Articles.
a periodical dedicated to a particular subject; "he reads the medical journals."
Journal
A periodical of magazine Articles. A magazine is a publication that is issued periodically, usually bound in a paper cover, and typically contains essays, stories, poems, etc., by many writers, and often photographs and drawings, frequently specializing in a particular subject or area, as hobbies, news, or sports.
A periodical publication containing articles and illustrations, often on a particular subject or aimed at a particular readership.
Magazine
An unpublished Document, which may also be submitted to a publisher for publication.
Manuscript
A document describing the exclusive right granted by a government to an inventor to manufacture, use, or sell an invention for a certain number of years.
Patent
A group of related documents issued at regular intervals.
Periodical
A compilation of documents published from an event, such as a conference.
Proceedings
A document that presents authoritative reference information, such as a dictionary or encylopedia.
Reference Source
A document describing an account or statement describing in detail an event, situation, or the like, usually as the result of observation, inquiry, etc..
Report
A loose, thematic, collection of Documents, often Books.
Series
A slide in a slideshow.
Slide
A document created to summarize research findings associated with the completion of an academic degree.
Thesis
A web page is an online document available (at least initially) on the world wide web. A web page is written first and foremost to appear on the web, as distinct from other online resources such as books, manuscripts or audio documents which use the web primarily as a distribution mechanism alongside other more traditional methods such as print.
Webpage
A group of Webpages accessible on the Web.
Website
A comment on an item - for example, a comment on a blog post. The comment's content is expressed via the text property, and its topic via about, properties shared with all CreativeWorks.
Comment
Academic field of study or profession.
Academic discipline
Unambiguous specification of how to solve a class of problems.(https://www.wikidata.org/wiki/Q8366)
Algorithm
language designed to communicate instructions to a machine.
Programming language
Computer language
A resource that acts or has the power to act. Example of Agents include person and organization.
Agent
The Document class represents those things which are, broadly conceived, 'documents'.
The class Image is a sub-class of Document corresponding to those documents which are images.
Image
An agent belonging to some social institutions such as companies, associations etc, that has a collective goal.
Organization
A human.
Person
An Operating System (OS) is an interface between a computer user and computer hardware. An operating system is a software which performs all the basic tasks like file management, memory management, process management, handling input and output, and controlling peripheral devices such as disk drives and printers.
Operating system
It is a finite and unambiguous sequence of computer implementable instructions to perform a certain task. This can be a simple process, such as adding two numbers together, or a complex function, such as adding effects to an image. It can be expressed within a finite amount of space and time and in a well-defined formal language.
Time complexity corresponds to the amount of time required for an algorithm to run over the provided input in order to generate the required output. Analysis of this helps to predict the resources that an algorithm will take to finish execution.
AlgorithmAnalysisFunction
The different type of algorithmic techniques that are used to solve the various existing problems in the most optimized manner. This classification is neither exhaustive nor disjoint.
Algorithmic Type
Combinatorial optimization problem
Combinatorial algorithms are computational procedures which are designed to help solve combinatorial problems. Combinatorial problems are problems involving arrangements of elements from a finite set and selections from a finite set.
Computational geometry is a branch of computer science devoted to the study of algorithms which can be stated in terms of geometry. Some purely geometrical problems arise out of the study of computational geometric algorithms, and such problems are also considered to be part of computational geometry.
Computational Geometry Problem
A data structure is a named location that can be used to store and organize data.
Solving problems related to data structure i.e a particular way of organizing data in a computer so that it can be used effectively.
Data Structures Problem
A branch of knowledge.
Academic field
Subject area
The available form of expression/ notation of an algorithm. For example, Flowcharts, pseudocode, control tables, etc. (source: https://en.wikipedia.org/wiki/Algorithm)
Form of expression
A Graph is a non-linear data structure consisting of nodes and edges. The nodes are sometimes also referred to as vertices and the edges are lines or arcs that connect any two nodes in the graph.
Graph Problem
Any graph problem, which is NP-hard in general graphs, becomes polynomial-time solvable when restricted to graphs in special classes.
Hard Problem
A manifestation of a technical specification or algorithm as a program, software component, or other computer system through computer programming and deployment (source: https://en.wikipedia.org/wiki/Implementation).
Implementation
An information resource.
Information Resource
The type of loop best suited when an algorithm is implemented in any desired programming language. The loop types are for loop, while loop, do-while loop.
Loop construct
A small reference book, especially one giving instructions.
Manual
The mathematical concept used in the algorithm to tackle the problem. This includes set theoty, linear algebra, graph theory etc.
Mathematical property
Metric
Numerical algorithms are behind designing shapes (e.g. shapes for cars, planes, fonts), computing intensities for displaying graphics, animating moving objects, studying the spread of diseases, modelling the orbit of planets and satellites, supporting search engines such as google, and many more practical problems.
Numerical Problem
An optimization problem is the problem of finding the best solution from all feasible solutions.
Optimization problem
Performance metrics (e.g., accuracy, precision, recall) are used to evaluate different algorithms.
Performance metric
Polynomial time problem means that an algorithm exists for its solution such that the number of steps in the algorithm is bounded by a polynomial function of n, where n corresponds to the length of the input for the problem.
Polynomial Time Problem
The various problems for which an algorithm is written.
Problem
Language designed to communicate instructions to a machine Programming languages are used in computer programming to implement algorithms.
Sets are collections of symbols whose order is assumed to carry no significance.
Set Problem
Space complexity of an algorithm quantifies the amount of space or memory taken by an algorithm to run as a function of the length of the input.
Space complexity
Strings are defined by the sequence or arrangement of symbols
String problem
It represents the number of times a statement is executed.
Time complexity of an algorithm quantifies the amount of time taken by an algorithm to run as a function of the length of the input. It measures only the executing time of the algorithm in a way that depends only on the algorithm itself and its input.
Time complexity
The n-body problem is the problem of predicting the individual motions of a group of celestial objects interacting with each other gravitationally.
n-body problem
A Formal Basis for the Heuristic Determination of Minimum Cost Paths
Backtracking algorithms are based on a depth-first recursive search.
The Bellman-Ford algorithm was first proposed by Alfonso Shimbel (1955), but is instead named after Richard Bellman and Lester Ford Jr., who published it in 1958 and 1956, respectively.
The Bellman–Ford algorithm is an algorithm that computes shortest paths from a single source vertex to all of the other vertices in a weighted digraph. It is capable of handling graphs in which some of the edge weights are negative numbers.
Works on negative or positive vertex, in a directed weighted graph.
Shortest distance to all vertices from src. If there is a negative weight cycle, then shortest distances are not calculated, negative weight cycle is reported.
Best bin first is a search algorithm that is designed to efficiently find an approximate solution to the nearest neighbor search problem in very-high-dimensional spaces.
Efficient sorting algorithm that combines insert and merge operations.
Branch and bound algorithms are generally used for optimization problems. As the algorithm progresses, a tree of subproblems is formed. The original problem is considered the “root problem”. A method is used to construct an upper and lower bound for a given problem. At each node, apply the bounding methods.
A brute force algorithm simply tries all possibilities until a satisfactory solution is found.
Simple sorting algorithm that works by repeatedly swapping the adjacent elements.
Extract the data of 75 algorithmic problems from Stony Brooks Algorithm Repository in tabular form.
An algorithm for finding the shortest paths between nodes in a graph, which may represent, for example, road networks.
Dijkstra's algorithm is a graph search algorithm that solves the single-source shortest path problem for a graph with non-negative edge path costs, producing a shortest path tree.
a directed and weighted graph consisting of 2 or more nodes.
Works on only positive- weight edges in a directed, acyclic graph. The input generally represented by an adjacency matrix or list, and a start node.
a set of edges depicting the shortest path to each destination node.
A divide and conquer algorithm consists of two parts: (i) Divide the problem into smaller subproblems of the same type, and solve these subproblems recursively; (ii) Combine the solutions to the subproblems into a solution to the original proble.
A dynamic programming algorithm remembers past results and uses them to find new results. Dynamic programming is generally used for optimization problems, where multiple solutions exist but need to find the “best” one.
It uses deep neural network layers and converts the input words to corresponding hidden vectors. Each vector represents the current word and the context of the word.
Series of symbols in some language that need to be translated.
The fast multipole method (FMM) is a numerical technique that was developed to speed up the calculation of long-ranged forces in the n-body problem.
Heapsort is a comparison-based sorting algorithm. Heapsort can be thought of as an improved selection sort: like selection sort, heapsort divides its input into a sorted and an unsorted region, and it iteratively shrinks the unsorted region by extracting the largest element from it and inserting it into the sorted region.
Sorting algorithm that, at each iteration, inserts the current input element into the suitable position between the already sorted elements.
Merge sort is an efficient, general-purpose, and comparison-based sorting algorithm.
Average-case optimal divide and conquer comparison sorting algorithm.
Quicksort is a type of divide and conquer algorithm for sorting an array, based on a partitioning routine.
A randomized algorithm uses a random number at least once during the computation to make a decision.
A simple recursive algorithm: (i) Solves the base cases directly; (ii) Recurs with a simpler subproblem; (iii) Does some extra work to convert the solution to the simpler subproblem into a solution to the given problem. It is called “simple” because several of the other algorithm types are inherently recursive. (source: https://www.cis.upenn.edu/~matuszek/cit594-2003/Lectures/35-algorithm-types.ppt)
Recursive algorithm
Simple recursive algorithm
Shortest path problem
Smooth Sort: An Alternative For Sorting In Situ
Timsort is a hybrid stable sorting algorithm, derived from merge sort and insertion sort, designed to perform well on many kinds of real-world data.
A* Algorithm is a graph traversal and path search algorithm, which is often used in many fields of computer science due to its completeness, optimality, and optimal efficiency.