CompRE Home Source Code Ontology Component Ontology Domain-Specific Ontology Knowledge Population CompRE Evaluation

SCRO (Source Code Representation Ontology)

This version

http://www.cs.uwm.edu/~alnusair/ontologies/scro

Latest version

http://www.cs.uwm.edu/~alnusair/ontologies/scro

Previous version

http://www.cs.uwm.edu/~alnusair/ontologies/scro/2009/07/15

Version info.

Version 1.2 (03/13/2010)

Description

SCRO is created to support major Software Understanding tasks by explicitly representing the conceptual knowledge structure found in source code.

SCRO captures major concepts of object-oriented programs and helps understand the relations and dependencies among source code artifacts. Supported features include, encapsulation, inheritance (subclassing and subtyping), method overloading, method overriding, and method signature information.

A fragment of SCRO's taxonomy is shown below. Each of the concepts (classes) shown in the excerpt is interpreted as a set that defines a group of individuals (instances) sharing some properties. Disjoint subclasses are also modeled to define different sets of individuals. For example, all individuals that are members of class InstanceMethod are necessarily members of class Method but none of them can simultaneously be a member of another subclass of Method. SCRO's classes collectively represent the most important concepts found in object-oriented programs including various kinds of methods, classes and nested classes, fields, etc.

Various datatype properties, object properties, sub-properties, and ontological axioms are defined within SCRO to represent relationships among concepts by linking individuals from different OWL classes. For example, hasOutputType is a functional object property defined to represent the return type of a method while hasActualOutputType is a property that represent the possible runtime return types of a method. Inverse properties are used to define the inverse relation. For example, representing aggregation (Whole-Part) relationships between objects is modeled using the object property hasPart and its inverse isPartOf. hasPart on the other hand, is a sub-property of use which describes the 'use' relationship for objects that need to be aware of other objects to carry out their operations.

SCRO's knowledge is represented using OWL-DL ontology language. It was created using Protege ontology editor and validated using Pellet OWL-DL reasoner.

SCRO's Taxonomy SCRO's Object Properties

Ontology

SCRO OWL File Download:
scro.owl

Authors

Awny Alnusair and Tian Zhao