Populate the graph with edges connecting concepts

Assignment Help Software Engineering
Reference no: EM13909461

Algorithms and Complexity

The problem statement:

A trout is a fish. 
A TIGER IS A CAT.
A fish has gills. 
A TIGER HAS-STRIPES . 
A fish has fins. 
A TIGER IS WILD .
Fish is food.
A TABBIE IS A CAT .
Fish is animal.
A TABBIE HAS-STRIPES 
An apple is a fruit. 
A TABBIE IS A PET .
Fruit has a stem. 
A FLAG HAS-STRIPES
Fruit is food. A trout is a fish. A FLAG IS AN ARTIFACT
Fruit is vegetable. A cod is a fish. A CAT IS A MAMMAL .
An animal is a living thing. A trout lives in freshwater.  A MAMMAL IS AN ANIMAL . 
A vegetable is a living thing. A cod lives in saltwater.  A DOG IS A MAMMAL .

The knowledge, as expressed by the statements above, needs to be represented by a directed and labelled graph. This graph is meant to provide an insight into the world of some species, to be represented by vertices, and their properties, to be represented by labelled edges. This structure shall provide a mini knowledge base, which can provide answers to questions about properties of species, e.g., what is a vegetable.

Your tasks and deliverables:

A) Download the zipped Java skeleton source code (.java files) already implementing a weighted directed graph via an adjacency matrix, together with the text (KnowledgeStatements.txt) input data file including the statements above, as well as the stdlib.jar library. You can do so by
• Logging on to Blackboard at http://www.westminster.ac.uk/blackboard;
• Go to the relevant module Blackboard site, folder Assessment;

B) Unzip and create the project to work with (see also programming assignment checklist below)

C) Modify the logic of the application in the Main class, as well as the implementation of the supportive data structures, i.e., Graph and Vertex, in such a way that the following tasks are accomplished:

1. Populate the graph vertices (nodes) with all concepts/classes appearing in the knowledge statements above. For instance, Food, Apple, Stem Cat, Tabbie, Dog, etc.

2. Populate the graph with edges connecting concepts/classes as of the given statements above. You need to consider that these edges will be labelled by the predicate in the given statements. For instance, Fruit has a stem shall be represented by the nodes ‘Fruit' and ‘Stem' being connected by the directed edge (direction from Fruit to Stem), which will be labelled by the predicate "has a".

3. Implement a console/ terminal type of interaction upon which the following operations can be selected after successful compilation and running of the programme:

a) A DISPLAY method or operation, which displays all the inputted knowledge statements as of the input text file knowledgeStatements.txt, each statement in a different row;

b) A SEARCH method or operation, which receives as input an arbitrary concept/class and returns all meaningful inheritance relationships. For instance, SearchGenealogy(Trout) shall return Fish and Food as an answer.

c) A SEARCH method or operation, which receives as input an arbitrary concept/class and returns all associated features. For instance, SearchFeatures(Fish) shall return has gills, has fins, is food, is animal, as an answer.

4. Estimate the performance in terms of order of growth classifications, for both SEARCH operations, and justify your performance analysis by putting forward comments in plain English on top of the Main class and programme file.

5. Submit a zipped archive of the source and executable code (e.g., in Java, .java and .class files, respectively), ready for compilation and execution.

Reference no: EM13909461

Describe the use of arrays and subscripts

Be typed, double spaced, using Times New Roman font (size 12), with one-inch margins on all sides; citations and references must follow APA or school-specific format. Check

Question about consecutive bytes

Determine the address where the longest consecutively numbered string of bytes starts. Consecutive bytes are defined as those that differ through the number 01.

Research the concepts and technology of data etl

Discuss the various tools that SSIS provides and relate them to the phases within ETL. You should also provide suitable examples from case studies (such as AdventureWorks &

Draw fully annotated e-r diagram showing entities

Find the case requirements and analyze them. A fully annotated E-R diagram 1 and 2 showing the entities, primary and foreign keys, composite keys and relationships.

How do assess the quality of a software design

Using the architecture of a house or building as a metaphor, draw comparisons with software architecture. How are the disciplines of classical architecture and the software

Briefly discuss the key phases of the sdlc methodology

Briefly discuss the key phases of the SDLC methodology. Discuss the alternative approaches of SDLC and the benefits of alternatives. Compare and contrast the three major ERP i

How you will support the concept of continuous integration

How you will support the concept of continuous integration on such a large team that spans across multiple locations and companies? How will you control changes to both doc

Create state diagram to identify one form of comment

Create the state diagram to identify one form of the comments of Cbased programming languages, those that begin with /* and end with */.

Reviews

Write a Review

 
Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd