2021-03-11T00:00:00 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. https://creativecommons.org/publicdomain/zero/1.0/ AMV:Algorithm Metadata Vocabulary V1.0 Example competency questions. CQ1: What characteristics or properties are common across all algorithms? CQ2: List all algorithms that compute the solution to problem X (e.g., shortest path) along with their types and input. CQ3: Retrieve an algorithm that solves problem X (e.g. Shortest Path) with its details like best case space complexity, best case time complexity, and the problems related to it. CQ4: Retrieve all the algorithms X (e.g., sorting) which are expressed in the form of a flowchart. CQ5: Which Sorting algorithms are derived from the already existing sorting algorithms? http://purl.org/dc/terms/ http://purl.org/ontology/bibo/ http://www.w3.org/2004/02/skos/core# http://www.w3.org/ns/dcat# http://www.wikidata.org/entity/ http://xmlns.com/foaf/0.1/ https://schema.org/ 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. contributor The person who created the algorithm. creator 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) has Part A related resource that is a version, edition, or adaptation of the described resource. has Version 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) is Part Of A related resource of which the described resource is a version, edition, or adaptation. is Version Of The licence under which the algorithm is published. license 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. subject 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 Derived From 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. affliation 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. appeared In An algorithm for a given problem. available algorithm branch Of comment of Problem that this algorithm or method solves.(https://www.wikidata.org/wiki/Property:P2159) The type of problem the algorithm solves. http://www.wikidata.org/prop/direct/P2159 computes solution to contains contributor of creator of author of The data structure used in an algorithm. data Structure Used data Structure Used In evaluation metric of The form of expression of an Algorithm. form of expression The form of expression of an Algorithm. form Of expression of hasArticle Branch of the academic discipline. has branch has evaluation metric The various applications of the algorithm. has implementation has 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 The various applications of the algorithm. 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 mathematicalPropertyUsed metric of operatingSystemFor input image 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. created A point or period of time associated with an event in the lifecycle of the resource. date Date of submission of the resource. dateSubmitted 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. description An unambiguous reference to the resource within a given context. identifier Date on which the resource was changed. modified A name given to the resource (e.g., book, algorithm, research software). title 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. landingPage The version number of a resource. version The first name of a person. first name A homepage for some thing. homepage 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. name A page or document about this thing. page 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. accuracy acronym An alternative title of a resource. alternative title Space complexity of an algorithm on average.(https://www.wikidata.org/wiki/Property:P3757) http://www.wikidata.org/prop/direct/P3757 average space complexity Time complexity of an algorithm on average. (https://www.wikidata.org/wiki/Property:P3754) http://www.wikidata.org/prop/direct/P3754 average time complexity Space complexity of an algorithm at least.(https://www.wikidata.org/wiki/Property:P3756) http://www.wikidata.org/prop/direct/P3756 best case space complexity Time complexity of an algorithm at least. (https://www.wikidata.org/wiki/Property:P3753) http://www.wikidata.org/prop/direct/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. http://www.wikidata.org/prop/direct/p2534 defining formula URL which can be used to download a work. http://www.wikidata.org/prop/direct/p4945 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) http://www.wikidata.org/prop/direct/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. flexible 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. library URI The number of nested loops in an algorithm. number Of Nested Loops Total number of steps that the algorithm takes to solve a certain problem. number Of Steps 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 after processing the input. 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) http://www.wikidata.org/prop/direct/P3755 worst case space complexity Time complexity of an algorithm at most. (https://www.wikidata.org/wiki/Property:P3752) http://www.wikidata.org/prop/direct/P3752 worst case time complexity A legal document giving official permission to do something with a Resource. LicenseDocument 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. Rights Statement 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'. Document 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 1 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. Algorithm 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. Combinatorial Problem 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. Data Structure 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 of study or profession. Academic discipline Academic field Subject area Evaluation metric 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 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. Programming language 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 01-01-1968T00:00:00 https://ieeexplore.ieee.org/document/4082128 A Formal Basis for the Heuristic Determination of Minimum Cost Paths https://doi.org/10.1145/512274.512284 Algorithm 232 - HeapSort Arne Kutzner Array Backtracking algorithms are based on a depth-first recursive search. 2002-01-01T00:00:00 A natural sorting algorithm. https://rosettacode.org/wiki/Sorting_algorithms/Bead_sort Bead Sort O(S) O(n^2) O(n) A set of positive integers. O(S) https://upload.wikimedia.org/wikipedia/commons/thumb/c/cf/BeadSort-Figure1.svg/220px-BeadSort-Figure1.svg.png Bead Sort-L https://upload.wikimedia.org/wikipedia/commons/thumb/9/92/BeadSort-Figure2.svg/220px-BeadSort-Figure2.svg.png Bead Sort -R https://en.wikipedia.org/wiki/Bead_sort#Implementation Bead Sort In Python 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. Bellman-Ford Algorithm O(N) θ(|E|) Graph and a source vertex src. 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. θ(|V|) θ(|V||E|) Bertram Raphael 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. Best bin first 2008-01-01T00:00:00 Efficient sorting algorithm that combines insert and merge operations. Block Sort O(n log n) O(n) O(1) O(n log n) 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. Bubble sort O(n^2) O(n) O(1) O(n^2) https://en.wikipedia.org/wiki/Bubble_sort#Implementation Bubble Sort Pseudocode Implementation C. A. R. Hoare https://en.wikipedia.org/wiki/Dijkstra%27s_algorithm#Pseudocode Code for Dijkstra's algorithm Cristian S. Calude 2022-01-01T00:00:00 Extract the data of 75 algorithmic problems from Stony Brooks Algorithm Repository in tabular form. https://github.com/jyotimapatel/Algorithmic_Knowledge_Graph/blob/main/scrape.py Data Extraction From Sbr https://algorist.com/algorist.html 9 https://github.com/jyotimapatel/Algorithmic_Knowledge_Graph/blob/main/Problem(75).csv https://github.com/jyotimapatel/Algorithmic_Knowledge_Graph/blob/main/Problem(75).csv Data Extraction Implementation 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. Dijkstra's Algorithm 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. O(|E|+|V| log |V|) 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. Edsger W. Dijkstra O(N) O(N) 2014-01-01T00:00:00 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. Encoding Recurrent Neural Network 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. Fast multipole method 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. https://rosettacode.org/wiki/Sorting_algorithms/Heapsort Heap Sort O(n log n) O(n) O(n) O(n log n) Ilya Sutskever Sorting algorithm that, at each iteration, inserts the current input element into the suitable position between the already sorted elements. https://rosettacode.org/wiki/Sorting_algorithms/Insertion_sort Insertion Sort O(n^2) O(n) false O(1) O(n^2) J.W.J Williams John Von Neumann Joshua J. Arulanandham L.R Ford 1945-01-01T00:00:00 Merge sort is an efficient, general-purpose, and comparison-based sorting algorithm. https://rosettacode.org/wiki/Sorting_algorithms/Merge_sort Merge Sort O(n log n) O(1) O(n log n) O(n) O(n log n) Michael Dinneen 01-01-1956T00:00:00 https://www.rand.org/pubs/papers/P923.html Network Flow Theory. NIls Nilson 01-01-1958T00:00:00 https://doi.org/10.1090/qam/102435 On a Routing Problem Oriol Vinyals Peter Hart Pok Son Kim Quarterly Applied Mathematics 1961-01-01T00:00:00 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. https://rosettacode.org/wiki/Sorting_algorithms/Quicksort Quick Sort O(log n) O( n log n) O( n log n) 1959-01-01T00:00:00 O(n) O(n^^2) Quoc V. Le A randomized algorithm uses a random number at least once during the computation to make a decision. 2008-01-01T00:00:00 http://itbe.hanyang.ac.kr/ak/papers/tamc2008.pdf Ratio based stable in-place merging 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 Richard E. Bellman Sorting Algorithm https://rosettacode.org/wiki/Sorting_algorithms/Selection_sort Selection Sort O(n^^2) O(n^^2) O(1) O(n^^2) https://en.wikipedia.org/wiki/Selection_sort#Implementations Selection Sort Implementation In C Shortest path problem Shortest path problem 1981-01-01T00:00:00 A comparison-based sorting algorithm. Smooth Sort O(n log n) O(1) O(n) O(n) O(n log n) 1981-01-01T00:00:00 https://www.cs.utexas.edu/users/EWD/ewd07xx/EWD796a.PDF Smooth Sort: An Alternative For Sorting In Situ Sorting Tim Peters 2002-01-01T00:00:00 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. Tim Sort O(n log n) O(n log n) O(n) O(n) https://gist.github.com/nandajavarma/a3a6b62f34e74ec4c31674934327bbd3 Tim Sort Implemented In Python 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. A* Algorithm O(|V|) O(|E|) 1961-01-01T00:00:00 https://doi.org/10.1145/366622.366644 Algorithm 64: Quicksort 2002-01-01T00:00:00 https://web.archive.org/web/20170809110409/https://www.cs.auckland.ac.nz/~jaru003/research/publications/journals/beadsort.pdf Bead–Sort: A Natural Sorting Algorithm