<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">An Approach for Automatic Construction of an Algorithmic Knowledge Graph from Textual Resources</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author role="corresp">
							<persName><forename type="first">Jyotima</forename><surname>Patel</surname></persName>
							<email>jyotima@drtc.isibang.ac.in</email>
							<affiliation key="aff0">
								<orgName type="department">DRTC</orgName>
								<orgName type="institution">Indian Statistical Institute</orgName>
								<address>
									<settlement>Bangalore</settlement>
									<country key="IN">India</country>
								</address>
							</affiliation>
							<affiliation key="aff1">
								<orgName type="department">Department of Library and Information Science</orgName>
								<orgName type="institution">Calcutta University</orgName>
								<address>
									<settlement>Kolkata</settlement>
									<country key="IN">India</country>
								</address>
							</affiliation>
							<affiliation key="aff2">
								<orgName type="department">DRTC</orgName>
								<orgName type="institution">Indian Statistical Institute</orgName>
								<address>
									<settlement>Bangalore</settlement>
									<country key="IN">India</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Biswanath</forename><surname>Dutta</surname></persName>
							<affiliation key="aff0">
								<orgName type="department">DRTC</orgName>
								<orgName type="institution">Indian Statistical Institute</orgName>
								<address>
									<settlement>Bangalore</settlement>
									<country key="IN">India</country>
								</address>
							</affiliation>
							<affiliation key="aff2">
								<orgName type="department">DRTC</orgName>
								<orgName type="institution">Indian Statistical Institute</orgName>
								<address>
									<settlement>Bangalore</settlement>
									<country key="IN">India</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">An Approach for Automatic Construction of an Algorithmic Knowledge Graph from Textual Resources</title>
					</analytic>
					<monogr>
						<idno type="ISSN">1613-0073</idno>
					</monogr>
					<idno type="MD5">293D92A2BA9E3B10F8019E387FA623DB</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-24T07:05+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<textClass>
				<keywords>
					<term>Knowledge Graph</term>
					<term>Algorithm</term>
					<term>Information Extraction</term>
					<term>Algorithm knowledge graph</term>
					<term>Automatic approach</term>
					<term>Metadata extraction</term>
				</keywords>
			</textClass>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>There is enormous growth in various fields of research. This development is accompanied by new problems. To solve these problems efficiently and in an optimized manner, algorithms are created and described by researchers in the scientific literature. Scientific algorithms are vital for understanding and reusing existing work in numerous domains. However, algorithms are generally challenging to find. Also, the comparison among similar algorithms is difficult because of the disconnected documentation. Information about algorithms is mostly present in websites, code comments, and so on. There is an absence of structured metadata to portray algorithms. As a result, sometimes redundant or similar algorithms are published, and the researchers build them from scratch instead of reusing or expanding upon the already existing algorithm. In this paper, we introduce an approach for automatically developing a knowledge graph (KG) for algorithmic problems from unstructured data. Because it captures information more clearly and extensively, an algorithm KG will give additional context and explainability to the algorithm metadata.</p></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1.">Introduction</head><p>Scientific knowledge is distributed and maintained through academic literature published in, for example, conference proceedings, journal articles, and workshop proceedings. It is a challenging task for researchers to keep track of innovations like proposals for new frameworks, algorithms, and software with such an increased number of publications. Algorithms (where an algorithm is a step-by-step strategy to tackle any issue) are published in areas ranging from Mathematics to Geo-sciences and Computer Science <ref type="bibr" target="#b0">[1]</ref>. Algorithms in the scientific literature are expressed as flowcharts, pseudo-codes, or computer programs. As algorithms are written in a step-by-step manner, understanding a scientific problem becomes simple. Studying an algorithm also helps to know the processes and techniques used to solve a scientific problem.</p><p>In the academic community, algorithms are often used to communicate the goal, technique, and procedures taken towards solving a problem, whereas practical people more often look for the implementation of the algorithm <ref type="bibr" target="#b1">[2]</ref>. There is no system available where the researchers can find all the major algorithms, though there are initiatives like The Stony Brook Algorithm Repository<ref type="foot" target="#foot_0">1</ref>  <ref type="bibr" target="#b1">[2]</ref>, Algowiki<ref type="foot" target="#foot_1">2</ref>  <ref type="bibr" target="#b2">[3]</ref>, and Wikidata <ref type="foot" target="#foot_2">3</ref> . The main limitations of these repositories are that they provide a minimal description of the algorithms, they also lack a proper search facility and browsing for algorithms in these repositories is a tedious and time-consuming process (the repositories are further elaborated on in section 2). Because of these issues, many important algorithmic works often go unnoticed. Also, as stated above, since the algorithms are described minimally, searching for them is a challenge. The algorithm metadata in most cases is either missing or provided in a very minimal way. The extraction of the metadata is a challenging task because the information is usually located within the scholarly or other textual resources, such as the registries and repositories, like Algowiki and Stony Brook Algorithm Repository. Gathering the metadata manually from these resources is a tedious and time-consuming process. One of the main focuses of the current study is to provide an approach for extracting the algorithmic metadata from textual resources. As a first step, we consider the Stony Brook Algorithm Repository as a potential source for extracting the metadata. Further, we transform these metadata automatically into a knowledge graph (KG) (a manifestation of an intelligent web of Data informed by an ontology <ref type="bibr" target="#b3">[4]</ref> <ref type="bibr" target="#b4">[5]</ref>). The transformation of algorithm metadata into a KG helps in representing the algorithms and their relations with high dependability, logic, and reusability. Apart from providing better search and retrieval, the KG identifies related information and helps in the comparison of algorithms. The KG can also be used as a referential model for the automatic extraction of information from the scientific literature.</p><p>The primary contributions of this work are:</p><p>• a methodology for the automatic creation of a knowledge graph for algorithmic problems.</p><p>• an approach for the automatic extraction of algorithmic problems and associated data from textual resources. • generation of a knowledge graph using the extracted data.</p><p>The rest of the paper is organized as follows: Section 2 discusses the existing algorithm repositories and provides a comparison between them; section 3 gives an overview of the KG development approach and the steps involved in it; section 4 discusses the data extraction i.e the steps involved in the extraction of the data and the data processing; section 5 discusses the KG creation process from the processed data and also the tools used; section 6 provides some SPARQL queries to validate the KG; section 7 discusses the relevant related works and Section 8 concludes the paper and provides future research directions.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.">Existing Algorithm Repositories</head><p>Algorithm repositories are storage areas for algorithms, where algorithms are often stored with minimal metadata. We found three dedicated algorithm repositories on the web. The Stony Brook Algorithm Repository provides an exhaustive collection of 75 fundamental algorithmic problems along with their implementations. The algorithms in this repository are categorized into two groups: by language and by problem <ref type="bibr" target="#b1">[2]</ref>. Each algorithm has its own separate web page containing information like input, output, input description, implementations, related problems, and so on.</p><p>Algowiki is an online encyclopedia of algorithms. It contains a list of algorithms on a wiki page arranged in alphabetical order. Algowiki consists of algorithms from the field of mathematics with some features and properties. It is a wiki dedicated to competitive programming <ref type="bibr" target="#b2">[3]</ref>. The algorithms in the Stony Brook algorithm repository are held in one web Server, whereas in Algowiki once you click on the desired algorithm, the site is redirected to either a Wikipedia page or a website that holds the description of the algorithm with minimal metadata. In Algowiki, only the URL of each algorithm is stored <ref type="bibr" target="#b2">[3]</ref>. Wikidata is a knowledge base that acts as central storage for structured data of its Wikimedia sisters <ref type="bibr" target="#b5">[6]</ref>. Initiatives are taken by Wikidata to model algorithms where they use generic properties to describe algorithms and then interlink the various other algorithms as sub-classes or instances. The Wikidata repository consists of items, each having a label and description <ref type="bibr" target="#b5">[6]</ref>. When compared with the Stony Brook repository, Wikidata provides a more generalised description. For instance, the Convex Hull problem is described with metadata elements, such as title, description, sub-class, and main category. The metadata like input, output, and related problems are not provided. Wikidata has modeled the algorithms in a broad manner. The metadata elements present in Wikidata are in a structured format. Wikidata provides query service through the SPARQL endpoint <ref type="foot" target="#foot_3">4</ref> .</p><p>Taking note of the data extraction for the KG creation, Wikidata provides a seamless service to extract data in many formats like csv, json, xml, and many more. Wikidata provides structured data by just executing SPARQL queries that do not fit the scope of our current work. Whereas, the Stony Brook Algorithm repository challenges us to extract the unstructured data from its website and process it to the set format. Algowiki does not meet our requirements as it describes the algorithms minimally. It is more like a registry and not a repository as the information is not held in the Algowiki server but spread across various third party websites. Whereas in Stony Brook Repository apart from algorithmic problems various associated entities like implementations and related problems are also described. Hence, in this work, our emphasis lies on the Stony Brook Algorithm Repository for data extraction. Figure <ref type="figure" target="#fig_0">1</ref> shows a representational algorithmic description from the repository.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.">Knowledge Graph Development Approach</head><p>In this work, we build a KG for describing algorithmic problems and associated entities, such as software implementations, recommended resources, persons, and so forth. We present here a general approach toward the KG creation for algorithms and their relations. Figure <ref type="figure" target="#fig_1">2</ref> shows the important steps that we follow. Step 0-Selection of data source. The initial step is to identify the objective data source for data extraction, In section 2 comparisons are drawn among the accessible Algorithm Repositories. The Stony Brook Algorithm Repository is recognized as the potential source to extract the data for generating the KG.</p><p>Step 1-Data extraction. The Stony Brook Algorithm Repository has 75 separate web pages for its algorithms containing information like input, output, problem statement, description, related problems, implementation, rating, and so on. There are 10 metadata elements about each algorithm that interest us for extraction. Using an HTML parser and pattern matching the metadata present in each webpage is extracted and stored in a convenient data structure. In this work Python3, Dictionary and List are used as our preferred data structure.</p><p>Step 2-Storing the data in tabular form. In the above step, the data is stored in a Python variable but it needs to be exported to use it outside the Python environment. A Python package called Pandas is used to export it in tabular form.</p><p>Step 3-Data processing. The exported data file needs to be further processed in such a way that KG transformation can be done easily. In the present data file, there are metadata elements that have one to many relationships and are represented in a single column. These need to be separated into multiple columns. Further, there are metadata elements that are combined, for instance for an algorithm problem recommended books information column contains the book title along with the author's information as a single entity, which needs to be segregated into multiple columns.</p><p>Step 4-Knowledge Graph creation. The above data is taken as input and utilizing the Algorithm Metadata Vocabulary (AMV) <ref type="bibr" target="#b6">[7]</ref> and MappingMasterDSL <ref type="bibr" target="#b7">[8]</ref> the data is transformed into a KG. The details in regard to the KG development are discussed in section 5.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.">Data Extraction and Processing</head><p>As discussed in section 2, for the current study, we selected Stony Brooks Algorithm Repository as our target repository to extract data. The Repository categorizes the algorithmic problems into two main classes: problems and language. On its home page ("https://algorist.com/algorist.html"), all the algorithmic problems are listed. Each problem in the list points to an HTML page where a detailed depiction of that algorithmic problem is present. Figure <ref type="figure" target="#fig_2">3</ref> shows a list of algorithmic problems. Information about each algorithmic problem, e.g., Convex Hull, String Matching, and Text Compression is to be extracted. The algorithmic problems are further grouped under seven broad problem types, for example Combinatorial Problems, Graph Problems, and Computational Geometry. Figure <ref type="figure" target="#fig_2">3</ref> shows a few of them.</p><p>The process of extraction of information from the website is completely automated. To automate the extraction and process the information in the required format the following Python libraries were used: BeautifulSoup, Selenium, Urllib, Regex, and Pandas. Among these BeautifulSoup along with Urllib is used to extract the relevant text from HTML pages. Webdriver from the Selenium library is used for navigating to different HTML pages. Lastly, Pandas and Regex are used to tabulate and clean the extracted data.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.1.">Data Extraction</head><p>In this section, the steps for extracting information from the Stony Brook Algorithm repository are discussed. The pseudo-code for data extraction is given as Algorithm 1 (the source code is available on GitHub<ref type="foot" target="#foot_4">5</ref> ).</p><p>Due to the space problem, only two examples are provided. The extracted values as shown in example 1 are appended to their corresponding keys in the dictionary created in step 3.</p><p>Step 0-Importing the Python libraries. Started with importing the Python libraries, regex, urllib, bs4, selenium and Pandas.</p><p>Step 1-Links stored in a list. The selenium web driver is used to open the URL "https://algorist. com/algorist.html" and all the links present on the homepage (as shown above in Figure <ref type="figure" target="#fig_2">3</ref> each algorithmic problem is a link to an HTML page) are stored in a list (a Python data structure). Step 2-Filtering the URLs of algorithmic problems. In the above step all the URLs present on the homepage are stored, but our interest lies in the URLs of each algorithmic problem. Hence, an empty list 'AlgorithmicProblem' is created and all the URLs starting with 'https://algorist.com/problems/' are stored since the URL for all algorithmic problems starts with the mentioned pattern. Regex is used to filter out the desired URLs.</p><p>Step 3-Dictionary created for storing metadata. By visual inspection of the website it is clear that each algorithmic problem has ten metadata elements. Hence, a Python dictionary is created with keys: problem, problem_type, input_image, output_image, input_decription, problem_statement, description, implementations, recommended_books and related_problems. Initially all the keys are assigned an empty list.</p><p>Step 4-Data population. This step uses links that were stored in step 1 to populate the value in the dictionary corresponding to key problem_type. Regex is used to filter out the links that begin with 'https://www.algorist.com/sections' and store it in a list. Since, all the broad categories, e.g., Data Structures, Numerical Problems, and Combinatorial Problems, have URLs starting with 'https://www.algorist.com/sections'.</p><p>Step 5-Metadata extraction. In this step, the metadata of each algorithmic problem is extracted. BeautifulSoup 'soup'(it contains HTML code in a hierarchical manner which is easy to access) object is created which contains the HTML script of each algorithmic problem. This is achieved by iterating over the list 'AlgorithmicProblem'. For instance, the title of the algorithmic problem is available in the 'h1' tag of the HTML page. Using the soup.select function it is accessed, there are multiple implementations present and each has its 'name', 'url', and 'rating'. This information is extracted as shown in example 1.</p><formula xml:id="formula_0">Example 1. name1 | url1 | rating1 | implementation1_language_1 \n name2 | url2 | rating.</formula><p>Step 6-Exporting the output as csv. A Pandas dataframe is created from the main dictionary that holds all the information and this data frame is exported as a csv file.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Algorithm for information extraction</head></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.2.">Data Processing</head><p>The exported data in csv (as discussed above), needs to be processed and converted into a form that fits with the Algorithm Metadata Vocabulary (AMV) model (discussed in section 5).The data will be utilized to create a KG and in a KG each entity is represented in a unique node <ref type="bibr" target="#b8">[9]</ref> [? ].In the KG, a node can be any object, place, or person and the edge defines the relationship between nodes <ref type="bibr" target="#b9">[10]</ref>. In the exported data, some data points are merged together and do not represent a unique entity. Hence, the processing is required for some columns e.g. implementation and related problems.</p><p>The columns like implementation, related problems, and recommended books have more than one element. Figure <ref type="figure" target="#fig_3">4</ref> shows the columns implementation, recommended books, related problems, and so on. As visible in the Figure <ref type="figure" target="#fig_3">4</ref> there is information that needs to be in different columns. For instance, the implementation column has multiple entities. Firstly, each individual implementation needs to be separated. Each individual implementation also has its name, rating, and url, this information also needs to be split. Similar processing is required for the columns recommended_books, related_problems, and implementation_in _languages.</p><p>The details of processing the data are as follows:</p><p>Step 0-Importing the libraries and loading the data. Started by importing the Python libraries, numpy, Pandas and regex and the csv file is loaded which contains the extracted data.</p><p>Step 1-Processing the implementations. In this step, the focus is on the implementation column, the multiple implementations were combined using '\n'. The same is used to split each implementation to get the maximum number of implementations present and create that many columns with suffix (eg. Implementation_1, Implementation_2). Further, each implementation is appended in separate columns that were created. Each implementations has its title, rating, and url which are combined using '|'. The same is used to split them and add them to separate columns.</p><p>Step 2-Processing the related problems. In this step, the focus is on related problem column. There are multiple related problems combined with '/n' and each problem has its name and url combined using '|'. The similar approach as the previous step is followed to process this column.</p><p>Step 3-Processing the recommended books. In this step, the focus is on the recommended book column, the book name contains the title of the book along with author names. The book title and author's name are separated by 'by' string. For books with multiple authors, each author is separated by 'and' and ', '. Following the similar approach as above the books are split into multiple columns and the related information like author name, book url are split from each book.</p><p>Step 4-Export the processed data. The final data frame is exported into a .xlsx file.</p><p>Figure <ref type="figure" target="#fig_4">5</ref> shows the recommended_books column before and after processing. As visible in Figure <ref type="figure" target="#fig_4">5</ref> after extraction, each recommended_book column has its title, url, and authors. After processing, each recommended_book column is split and their authors, title and URLs are also present in different columns.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5.">Knowledge Graph Creation</head><p>The processed data was received in a .xlsx file with 75 rows and 163 columns. This data is taken as input for the KG development. In the current study, Algorithm Metadata Vocabulary (AMV <ref type="foot" target="#foot_5">6</ref> ) is used as a schema for the KG. MappingMaster (𝑀 2 ) is used to transform the data into a KG. AMV is a metadata vocabulary for describing algorithms, algorithm problems, and related entities, like software code. The vocabulary is available as an OWL ontology. It can be directly used by anyone interested to create and publish algorithm metadata as a KG, or to provide metadata service through the SPARQL endpoint [? ]. We have used it as a schema for the production of the algorithmic KG. MappingMaster (an open-source Java library to transform the content of spreadsheets to OWL axioms) has GUI support and is available as a plugin called Cellfie for Protege Desktop <ref type="bibr" target="#b10">[11]</ref>. MappingMaster has domain-specific language (DSL) <ref type="bibr" target="#b7">[8]</ref>. For the current work, we used the Cellfie plugin and also the DSL language for developing mapping rules for transforming the metadata available in a spreadsheet (as mentioned above) into KG. A snippet of the developed mapping rules expressed in (𝑀 2 ) DSL language is shown in Table <ref type="table">1</ref>. Table <ref type="table">1</ref> provides a snippet of the mapping rule for the algorithm problems and their corresponding types, identifier, representational depiction of input and output, input description for the problem, problem description, and implementation details.</p><p>The produced KG consists of 1494 individuals and 9706 axioms in addition to 59 classes, 44 object properties, and 50 data properties coming from the AMV ontology. The KG is available as an RDF dump and can be downloaded from GitHub <ref type="foot" target="#foot_6">7</ref> .</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Table 1</head><p>Snippet of the mapping rules represented in 𝑀 2 DSL language Individual: @A*(rdfs:label=(@A*)) Types: @C** Facts: dcterms:title @A*, dcterms:identifier @B*, inputImage @D*, outputImage @F*, inputDescription @H*, problemDescription @I*, excerpt @J*, hasImplementation @K*</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="6.">SPARQL Queries</head><p>To validate the produced KG, we have conducted several SPARQL queries. The queries are centered around the algorithm problems and their e.g. relations, implementation, and related information like implementation language, platform, loop types, and data structure. Some of the queries are: retrieve all the problems related to the sorting problem, with their corresponding type and their implementation details like problem statement, implementation URI and implementation language (Q1), retrieve the implementations of Eulerian Cycle problem in C++ programming language (Q2) and retrieve the related algorithms for text compression problem along with their looping structure (Q3). Table <ref type="table" target="#tab_0">2</ref> provides the SPARQL representation for the first query(Q1). Figure <ref type="figure" target="#fig_6">7</ref> displays the query result in a graph produced using a browser based application Gruff (https://allegrograph.com/products/gruff/). The successful execution and the retrieval of desired results for the various queries centered on algorithm problems proves the efficacy of KG.  </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="7.">Related Works</head><p>Addressing all encompassing and factual knowledge utilizing RDF and Linked Data is quite feasible <ref type="bibr" target="#b11">[12]</ref>. There are industrial innovations like Thomson Reuters KG Feed for the Financial Services market <ref type="bibr" target="#b11">[12]</ref> and BBC's KG for their operations with content <ref type="bibr" target="#b8">[9]</ref>. Google's KG to make web searches more intelligent and augment the results with information relevant to the query <ref type="bibr" target="#b12">[13]</ref>. In academia, much work is focused on addressing the bibliographic metadata, while machine readable portrayal of scientific information in academic writing has not received much consideration <ref type="bibr" target="#b11">[12]</ref>. There are few methodologies that focus on scientific literature. The Artificial Intelligence Knowledge Graph(AI-KG) is a large-scale automatically generated KG that depicts research entities. It uses deep learning techniques to extricate elements and relations from scientific text <ref type="bibr" target="#b13">[14]</ref>.</p><p>The Open Research Knowledge Graph (ORKG) <ref type="bibr" target="#b11">[12]</ref> contributes toward representing scholarly knowledge semantically with KGs. ORKG not only contains the bibliographic metadata like authors, references, but also contains semantic depiction of scholarly literature like problem statement, approach and implementation. Both AI-KG and ORKG utilize deep learning techniques for extraction from the academic literature but KG of scientific software metadata focuses on external code repositories, readme files and documentation of software <ref type="bibr" target="#b14">[15]</ref>. It focuses on metadata categories like description, installation instructions, execution, and citation for extraction. Machine Learning techniques were employed to gather the data whereas in our work we used pattern matching to gather data. For KG development a list of programme items is scrapped from a target software registry (e.g., Zenodo). Then, for each item, its version data is obtained, extract all code repository links, and download the complete text of its readme file. SOMEF parses the readme file, and the findings are integrated and aggregated into a knowledge Graph <ref type="bibr" target="#b0">[1]</ref>. OKG-Soft is also one effort towards creating a KG for scientific software metadata in a machine readable manner. OKG-Soft includes an ontology designed to describe software and the specific data formats it uses and publish software metadata as an open KG, linked to other Web of Data object <ref type="bibr" target="#b15">[16]</ref>. The capture of metadata is based on their previous work OntoSoft <ref type="bibr" target="#b16">[17]</ref>.</p><p>The one ongoing effort towards KG is OpenAIRE, which considers many scientific artifacts like research literature, research software, and research data. It also includes metadata records about organizations involved in the research life-cycle, such as universities, research organizations, and funders <ref type="bibr" target="#b17">[18]</ref>. Graph4code is another work that focuses on the program code, the metadata in this is extracted by the code documentation, forum discussions and then mapped into a knowledge graph, this work employs extensive use of named graphs in RDF to make the knowledge graph extensible <ref type="bibr" target="#b18">[19]</ref>. The work focuses on and captures the semantics of Python codes whereas our work focuses on algorithms that can be implemented in different programming languages. Despite covering such diverse metadata records from various academic literature and external sources, the idea of depicting the metadata of algorithms and related entities and their relations is not considered previously. The current work may be considered a pioneer in this regard.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="8.">Conclusion</head><p>Algorithms published in the scientific literature are crucial to comprehend and reuse to better understand the information. There is a surge in the number of research publications made available each year. This creates a necessity to make algorithm searches more effective and personalized. Algorithms should be treated as independent digital objects like research data, research articles and in recent times software and ontologies <ref type="bibr" target="#b19">[20]</ref>. In this work, we have presented a novel approach for automatically creating a KG by extracting the data of 75 different algorithmic problems along with their relations and a methodology from the textual resource like Stony Brook algorithm repository. The work explores new metadata categories related to algorithmic problems to better comprehend problems and reuse. Such categories are related problems (a similar algorithmic problem) and recommended books (to better understand the problem and get detailed explanations). In continuation to the current work, we aim to make a comparative analysis of the designed KG approach with state of the art related approaches as used in the creation of knowledge graphs, such as AI-KG and ORKG. The present KG was developed primarily based on a single resource i.e., the Stony Brook algorithm repository. In the future, we aim to extend the KG by extracting the information from several other sources, such as scientific literature, repositories (e.g., GitHub, NIST Dictionary of Algorithms and Data Structures <ref type="bibr" target="#b20">[21]</ref>), and online discussion forums. For this purpose, we aim to focus on developing a more generic and robust framework of information extraction.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>Figure 1 :</head><label>1</label><figDesc>Figure 1: Algorithmic description in Stony Brook Algorithm Repository.</figDesc><graphic coords="3,89.29,310.12,416.77,300.90" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>Figure 2 :</head><label>2</label><figDesc>Figure 2: Steps for KG Creation.</figDesc><graphic coords="4,89.29,466.38,416.71,83.82" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_2"><head>Figure 3 :</head><label>3</label><figDesc>Figure 3: Homepage of the Stony Brook Algorithm Repository</figDesc><graphic coords="6,185.09,204.52,222.60,91.35" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_3"><head>Figure 4 :</head><label>4</label><figDesc>Figure 4: Shows the raw data after extraction</figDesc><graphic coords="8,89.29,84.19,416.75,55.94" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_4"><head>Figure 5 :</head><label>5</label><figDesc>Figure 5: Shows the recommended_books information before and after processing</figDesc><graphic coords="9,89.29,84.19,416.77,84.45" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_5"><head>Figure 6 :</head><label>6</label><figDesc>Figure 6: A glimpse of the dataset</figDesc><graphic coords="9,157.99,375.41,276.80,142.72" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_6"><head>Figure 7 :</head><label>7</label><figDesc>Figure 7: Showing the result in a graph for the query in Table 2</figDesc><graphic coords="11,162.11,84.19,268.56,154.80" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0"><head></head><label></label><figDesc></figDesc><graphic coords="7,89.29,123.22,416.73,325.87" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_0"><head>Table 2</head><label>2</label><figDesc></figDesc><table><row><cell cols="2">Shows SPARQL query representation for Q1</cell></row><row><cell cols="2">PREFIX dct: &lt;http://purl.org/dc/terms/&gt;</cell></row><row><cell cols="2">PREFIX amv: &lt;https://w3id.org/amv#&gt;</cell></row><row><cell>PREFIX</cell><cell>rdfs:&lt;http://www.w3.org/2000/01/rdf-</cell></row><row><cell>schema#&gt;</cell><cell></cell></row><row><cell cols="2">SELECT DISTINCT ?problem ?type ?prob_desc ?y</cell></row><row><cell cols="2">?impl_uri ?impl_language</cell></row><row><cell cols="2">WHERE amv:Sorting dct:relation ?problem.</cell></row><row><cell cols="2">?problem a ?type ; amv:problemDescription</cell></row><row><cell cols="2">?prob_desc ; amv:hasImplementation ?y .</cell></row><row><cell cols="2">?y amv:inProgrammingLanguage</cell></row><row><cell cols="2">?impl_language; dct:identifier ?impl_uri.</cell></row></table></figure>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="1" xml:id="foot_0">https://algorist.com/algorist.html</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="2" xml:id="foot_1">https://wiki.algo.is/</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="3" xml:id="foot_2">https://www.wikidata.org/</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="4" xml:id="foot_3">https://query.wikidata.org/</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="5" xml:id="foot_4">https://github.com/biswanathdutta/amv</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="6" xml:id="foot_5">https://w3id.org/amv</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="7" xml:id="foot_6">https://github.com/biswanathdutta/amv</note>
		</body>
		<back>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<analytic>
		<title level="a" type="main">A framework for creating knowledge graphs of scientific software metadata</title>
		<author>
			<persName><forename type="first">A</forename><surname>Kelley</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Garijo</surname></persName>
		</author>
		<idno type="DOI">10.1162/qss_a_00167</idno>
		<ptr target="https://doi.org/10.1162/qss_a_00167.doi:10.1162/qss_a_00167" />
	</analytic>
	<monogr>
		<title level="j">Quantitative Science Studies</title>
		<imprint>
			<biblScope unit="volume">2</biblScope>
			<biblScope unit="page" from="1423" to="1446" />
			<date type="published" when="2021">2021</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">Who is interested in algorithms and why? lessons from the stony brook algorithms repository</title>
		<author>
			<persName><forename type="first">S</forename><forename type="middle">S</forename><surname>Skiena</surname></persName>
		</author>
		<idno type="DOI">10.1145/333623.333627</idno>
	</analytic>
	<monogr>
		<title level="j">ACM SIGACT News</title>
		<imprint>
			<biblScope unit="volume">30</biblScope>
			<biblScope unit="page" from="65" to="74" />
			<date type="published" when="1999">1999</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">Why is it hard to describe properties of algorithms?</title>
		<author>
			<persName><forename type="first">V</forename><surname>Voevodin</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Antonov</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Dongarra</surname></persName>
		</author>
		<idno type="DOI">10.1016/j.procs.2016.11.002</idno>
	</analytic>
	<monogr>
		<title level="j">Procedia Computer Science</title>
		<imprint>
			<biblScope unit="volume">101</biblScope>
			<biblScope unit="page" from="4" to="7" />
			<date type="published" when="2016">2016</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<monogr>
		<title level="m" type="main">Linked data, ontologies, and knowledge graphs</title>
		<author>
			<persName><forename type="first">K</forename><forename type="middle">U</forename><surname>Idehen</surname></persName>
		</author>
		<ptr target="https://www.linkedin.com/pulse/linked-data-ontologies-knowledge-graphs-kingsley-uyi-idehen/" />
		<imprint>
			<date type="published" when="2020">2020</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">The covid-19 codo development process: an agile approach to knowledge graph development</title>
		<author>
			<persName><forename type="first">M</forename><surname>Debellis</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>Dutta</surname></persName>
		</author>
		<idno type="DOI">10.1007/978-3-030-91305-2_12</idno>
	</analytic>
	<monogr>
		<title level="m">Knowledge Graphs and Semantic Web</title>
		<title level="s">Communications in Computer and Information Science</title>
		<editor>
			<persName><forename type="first">B</forename><surname>Villazón-Terrazas</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">F</forename><surname>Ortiz-Rodríguez</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">S</forename><surname>Tiwari</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">A</forename><surname>Goyal</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">M</forename><surname>Jabbar</surname></persName>
		</editor>
		<meeting><address><addrLine>Cham</addrLine></address></meeting>
		<imprint>
			<publisher>Springer International Publishing</publisher>
			<date type="published" when="2021">2021</date>
			<biblScope unit="volume">1459</biblScope>
			<biblScope unit="page" from="153" to="168" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<monogr>
		<title/>
		<author>
			<persName><surname>Wikidata</surname></persName>
		</author>
		<ptr target="https://www.wikidata.org/wiki/Wikidata:Main_Page" />
		<imprint>
			<date type="published" when="2012">2012</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">AMV: A representational model and Metadata Vocabulary for describing and maintaing Algorithms</title>
		<author>
			<persName><forename type="first">B</forename><surname>Dutta</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Patel</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Journal of Information Science</title>
		<imprint>
			<date type="published" when="2022">2022</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<analytic>
		<title level="a" type="main">Mapping master: A flexible approach for mapping spreadsheets to owl</title>
		<author>
			<persName><forename type="first">M</forename><forename type="middle">J</forename><surname>O'connor</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Halaschek-Wiener</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><forename type="middle">A</forename><surname>Musen</surname></persName>
		</author>
		<idno type="DOI">10.1007/978-3-642-17749-1_13</idno>
	</analytic>
	<monogr>
		<title level="m">The Semantic Web -ISWC 2010</title>
				<editor>
			<persName><forename type="first">P</forename><forename type="middle">F</forename><surname>Patel-Schneider</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">Y</forename><surname>Pan</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">P</forename><surname>Hitzler</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">P</forename><surname>Mika</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">L</forename><surname>Zhang</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">J</forename><forename type="middle">Z</forename><surname>Pan</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">I</forename><surname>Horrocks</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">B</forename><surname>Glimm</surname></persName>
		</editor>
		<meeting><address><addrLine>Berlin Heidelberg</addrLine></address></meeting>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2010">2010</date>
			<biblScope unit="page" from="194" to="208" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<monogr>
		<author>
			<persName><forename type="first">T</forename><surname>Petkova</surname></persName>
		</author>
		<ptr target="https://www.ontotext.com/blog/the-knowledge-graph-and-the-enterprise/" />
		<title level="m">The knowledge graph and the enterprise</title>
				<imprint>
			<date type="published" when="2018">2018</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<monogr>
		<ptr target="https://www.ibm.com/cloud/learn/knowledge-graph" />
		<title level="m">What is a knowledge graph</title>
				<imprint>
			<date type="published" when="2021">2021</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b10">
	<analytic>
		<title level="a" type="main">The protégé project: a look back and a look forward</title>
		<author>
			<persName><forename type="first">M</forename><forename type="middle">A</forename><surname>Musen</surname></persName>
		</author>
		<idno type="DOI">10.1145/2757001.2757003</idno>
	</analytic>
	<monogr>
		<title level="j">AI Matters</title>
		<imprint>
			<biblScope unit="volume">1</biblScope>
			<biblScope unit="page" from="4" to="12" />
			<date type="published" when="2015">2015</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b11">
	<analytic>
		<title level="a" type="main">Orkg: Facilitating the transfer of research results with the open research knowledge graph</title>
		<author>
			<persName><forename type="first">S</forename><surname>Auer</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Stocker</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><surname>Vogt</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Fraumann</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Garatzogianni</surname></persName>
		</author>
		<idno type="DOI">10.3897/rio.7.e68513</idno>
	</analytic>
	<monogr>
		<title level="j">Research Ideas and Outcomes</title>
		<imprint>
			<biblScope unit="volume">7</biblScope>
			<biblScope unit="page">e68513</biblScope>
			<date type="published" when="2021">2021</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b12">
	<monogr>
		<title level="m" type="main">Semantic data platforms come of age</title>
		<author>
			<persName><forename type="first">C</forename><surname>Harding</surname></persName>
		</author>
		<ptr target="https://www.linkedin.com/pulse/semantic-data-platforms-come-age-chris-harding/" />
		<imprint>
			<date type="published" when="2021">2021</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b13">
	<analytic>
		<title level="a" type="main">Aimmx: Artificial intelligence model metadata extractor</title>
		<author>
			<persName><forename type="first">J</forename><surname>Tsay</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Braz</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Hirzel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Shinnar</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Mummert</surname></persName>
		</author>
		<idno type="DOI">10.1145/3379597.3387448</idno>
		<idno>doi:10.1145/3379597.3387448</idno>
		<ptr target="https://dl.acm.org/doi/10.1145/3379597.3387448" />
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 17th International Conference on Mining Software Repositories</title>
				<meeting>the 17th International Conference on Mining Software Repositories</meeting>
		<imprint>
			<publisher>ACM</publisher>
			<date type="published" when="2020">2020</date>
			<biblScope unit="page" from="81" to="92" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b14">
	<analytic>
		<title level="a" type="main">Somef: A framework for capturing scientific software metadata from its documentation</title>
		<author>
			<persName><forename type="first">A</forename><surname>Mao</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Garijo</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Fakhraei</surname></persName>
		</author>
		<idno type="DOI">10.1109/BigData47090.2019.9006447</idno>
	</analytic>
	<monogr>
		<title level="m">IEEE International Conference on Big Data (Big Data)</title>
				<imprint>
			<date type="published" when="2019">2019. 2019</date>
			<biblScope unit="page" from="3032" to="3037" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b15">
	<analytic>
		<title level="a" type="main">Okg-soft: An open knowledge graph with machine readable scientific software metadata</title>
		<author>
			<persName><forename type="first">D</forename><surname>Garijo</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Osorio</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Khider</surname></persName>
		</author>
		<author>
			<persName><forename type="first">V</forename><surname>Ratnakar</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Y</forename><surname>Gil</surname></persName>
		</author>
		<idno type="DOI">10.1109/eScience.2019.00046</idno>
	</analytic>
	<monogr>
		<title level="m">2019 15th International Conference on eScience (eScience)</title>
				<imprint>
			<date type="published" when="2019">2019</date>
			<biblScope unit="page" from="349" to="358" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b16">
	<analytic>
		<title level="a" type="main">Ontosoft: Capturing scientific software metadata</title>
		<author>
			<persName><forename type="first">Y</forename><surname>Gil</surname></persName>
		</author>
		<author>
			<persName><forename type="first">V</forename><surname>Ratnakar</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Garijo</surname></persName>
		</author>
		<idno type="DOI">10.1145/2815833.2816955</idno>
		<idno>doi:10.1145/2815833.2816955</idno>
		<ptr target="https://doi.org/10.1145/2815833.2816955" />
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 8th International Conference on Knowledge Capture, K-CAP 2015</title>
				<meeting>the 8th International Conference on Knowledge Capture, K-CAP 2015<address><addrLine>New York, USA</addrLine></address></meeting>
		<imprint>
			<publisher>Association for Computing Machinery</publisher>
			<date type="published" when="2015">2015</date>
			<biblScope unit="page" from="1" to="4" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b17">
	<analytic>
		<author>
			<persName><forename type="first">A.-L</forename><surname>Lamprecht</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><surname>Castro</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Kuzak</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><forename type="middle">Martinez</forename><surname>Ortiz</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Arcila</surname></persName>
		</author>
		<author>
			<persName><forename type="first">E</forename><surname>Pico</surname></persName>
		</author>
		<author>
			<persName><forename type="first">V</forename><forename type="middle">Dominguez</forename><surname>Del Angel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Sandt</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Ison</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Martinez</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Mcquilton</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Valencia</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Harrow</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Psomopoulos</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Gelpi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">N</forename><surname>Hong</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Goble</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Capella-Gutierrez</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Towards fair principles for research software</title>
				<imprint>
			<date type="published" when="2019">2019</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b18">
	<monogr>
		<author>
			<persName><forename type="first">K</forename><surname>Srinivas</surname></persName>
		</author>
		<author>
			<persName><forename type="first">I</forename><surname>Abdelaziz</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Dolby</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Mccusker</surname></persName>
		</author>
		<title level="m">Graph4code: A machine interpretable knowledge graph for code</title>
				<imprint>
			<date type="published" when="2020">2020</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b19">
	<analytic>
		<title level="a" type="main">New generation metadata vocabulary for ontology description and publication</title>
		<author>
			<persName><forename type="first">B</forename><surname>Dutta</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Toulet</surname></persName>
		</author>
		<author>
			<persName><forename type="first">V</forename><surname>Emonet</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Jonquet</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Metadata and Semantic Research</title>
				<editor>
			<persName><forename type="first">E</forename><surname>Garoufallou</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">S</forename><surname>Virkus</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">R</forename><surname>Siatri</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">D</forename><surname>Koutsomiha</surname></persName>
		</editor>
		<meeting><address><addrLine>Cham</addrLine></address></meeting>
		<imprint>
			<publisher>Springer International Publishing</publisher>
			<date type="published" when="2017">2017</date>
			<biblScope unit="page" from="173" to="185" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b20">
	<monogr>
		<title level="m" type="main">Dictionary of algorithms and data structures</title>
		<author>
			<persName><forename type="first">P</forename><forename type="middle">E</forename><surname>Black</surname></persName>
		</author>
		<ptr target="http://www.nist.gov/dads" />
		<imprint>
			<date type="published" when="1998">1998</date>
		</imprint>
	</monogr>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
