Build a Data Model

From gestalt

An organization is interested in soliciting proposals about developing science fiction-inspired technologies from around the world.

Decision-makers will select the top three proposals based on the pattern of best proposals distributed across keywords.

A proposal has relationships with its principal investigator, keywords, and reviews.

A proposal may have many reviews.

Listing the proposals in a table sorted by average rating is insufficient to clearly reveal patterns across keywords.

Let's translate these requirements into classes in a data model

Click the second tab named Classes

We begin with a semantic model where entities such as research proposals and reviews are described by classes. The foundation for the Gestalt Wiki Framework is MediaWiki, the wiki engine software used by Wikipedia. With MediaWiki, we can group pages together using categories. We use categories to represent classes.

Here is the wikitext markup syntax to categorize a page as a Research Proposal:

[[Category:Research Proposals]]

View the research proposal pages by clicking Category:Research Proposals.

Let's move on to learn about properties

Click the third tab named Defining Properties

In addition to MediaWiki, the Gestalt Wiki Framework uses an extension called Semantic MediaWiki, other extensions, as well as our MITRE-developed extensions. Our next step is to further describe our classes. With Semantic MediaWiki, we can structure the content within pages using properties and embed queries to dynamically display data each time the web page is loaded by the browser. A property can be thought of as a «category for values in wiki pages».

To define a property to hold values for all the research proposal Titles, you would create a page with the name Property:Title. Since values for Title will be text, you would add the following inside the page Property:Title:

[[Has type::Text]]

This wiki text defines values of Property:Title to be of type Text. Has type is itself a special property Property:Has type. Other values for Has type include:

  • Date
  • Geographic coordinates
  • Number
  • Page

To define a property to hold values for Principal Investigator names, you would create a page with the name Property:Principal Investigator. When clicking on a Principal Investigator value, it would be useful to link to a page about the Principal Investigator. To make values of Principal Investigator links, you would add the following inside the Property:Principal Investigator page:

[[Has type::Page]]

The complete list of values may be consulted here.

Let's make some decisions about the data

Continue to the Data Decisions tab.

To ensure that information is contributed only once, we can decide which property values are entered by authors and which are computed or queried by the system. Let's walk through all the properties.
  • Properties in green will be computed by the wiki. The Research Proposal Date as well as the Review Date values could be generated by querying for the system property Property:Creation date or Property:Modification date. The Average Rating for all reviews for a proposal could calculated and displayed on the proposal.
  • Properties in blue will be entered by authors but will link to other pages. The Principal Investigator link will bring readers to a page about the Principal Investigator.
  • Properties in orange will be computed by the wiki and link to other pages. Links to the Reviews will be queried and listed on the Research Proposal. The Review will query and list the Research Proposal Title and the Reviewer's name.
  • Properties in black will be entered by authors. Values for these properties are contributed once and may be reused to create many views.

Of the 12 properties listed, only 5 will be entered by contributors.

Let's find out how to complete our data model

Click the tab named Derive Additional Classes.

These additional green boxes represent classes for pages that can be derived from the original data to help decision makers view the body of research proposals many ways.

Principal Investigators have pages where the wiki will query and display their institution, all their proposals, and create a tag cloud from combining the keywords from all their proposals.

Institution pages will query the location, proposals, keywords, and principal investigators.

Location pages will query and display all the institutions, research proposals, principal investigators, and keywords once the coordinates have been added to display a Google map.

Let's look at how contributions are entered and how they are displayed.

Click the green arrow to the right.