Semantic Web for Software

Some resources on Semantic WEB for Software

Events/Portals

General Papers

Code Querying and Analysis Tools

Some of the Relevant papers. Feel free to add more.

PAPER

APPROACH

Knowledge Representation

Information Retrieval

Information Retrieval/ Indexing

Information Retrieval

Knowledge Representation

Knowledge Representation/ Software Analysis

Knowledge Representation/ Software Analysis

Program Comprehension

Information Retrieval

Knowledge Representation/ Modelling

Knowledge Representation/ Information retrieval

INPUT

Software under analysis

keywords as an informal description, a signature, test cases and contracts (via JML) for functional specifications, security constraints (using the Java security model), and threading constraints (not fully implemented)

Code Comments in programs

natural language headers of C programs

N/A

An ontology for representing design patterns, software under analysis, a scanner to detect patterns

Method under analysis

Method signatures

Configuration dependencies in OWL format

OWL-RDF representation of software as well as domain as indexes to software artifacts

OUTPUT

KONDOR based knowledge representation of software

Relevant Code Snippets appropriately transformed to fit to user requirements

Inverted File index of phrases(2 words) to the documents containing the phrases

Catalog of single term indices

N/A

A list of pattern instances detected in the software under analysis

A natural Language description of what the method does

AN index list of phrases from the method signatures in the form of Verb-direct Object(V_DO)

which are arranged hierarchically to assist in query suggestion

Reasoning about inconsistancies in the configurations

suggestions based on user queries

METHODOLOGY

Create a classification of the software under analysis in terms of DEFINITY architecture. The software is represented as a set of objects and permissible actions on those objects along with the constraints on the members of the object. The primary concerns Objects for Knowledge representation being ACTION, OBJECT, DOER, and STATE

use the keywords to access one of the available code search engines to get candidate files as potential solution.

These solutions are then transformed using a set of about 30 transformations in an attempt to map the code into exactly what the programmer specified.

The solutions that pass the test cases are then formatted according to the users' specified style, sorted by size, complexity, or performance on the test cases, and presented back to the user

create indexes from lexical affinities in the natural language documents accompanying code, hierarchical clustering of the indexes created in previous step

introduce a set of ontologies and techniques to represent software project information semantically and focus on the general abilities of semantic technologies to cover everyday problems in software comprehension

They introduce the vocabulary for documenting design patterns and show their methodology to express constraints in the design patterns in formal logic they use RDF and OWL

use an ontology to perform maintenance activities

A set of algorithms identify code fragments (of sequences, conditionals, and loops) within a method that implement high level abstract actions

An algorithm for splitting the method signature into V-DO pair and heuristics to generate additional phrase

advocate the use of OWL-DL ontologies, as a novel and theoretically sound formalization, for controlling the evolution process of large-scale software systems

Manually create the domain/software represntation in OWL-RDF. use that representation for developer queries of concepts

NOTES

The authors attempt to address the issue of invisibility of the software artifacts causing problem in code reuse and quality of software and the wasted effort

(I THINK ITS MANUAL NOT AUTOMATED)

propose the usage of semantic technologies such as OWL, RDF and SPARQL as a software comprehension framework with the abilities to be interlinked with other projects

  • Devanbu, P., Brachman, R., Selfridge P., Ballard, B., ``LaSSIE - A Classification-Based Software Information System''. Twelfth International Conference on Software Engineering, 1990. (10%).
  • Devanbu, P., Selfridge, P., Ballard, B., Brachman, R., ``A Knowledge-Based Software Information System'', Proceedings of the Ninth International Joint Conference in Artificial Intelligence, 1989. (21%).

Devanbu, P., ``Translating Description Logics into Information Server Queries'', Second International Conference on Information and Knowledge Management, 1993. (43%).

Steven P. Reiss Semantics-Based Code Search, ICSE 2009, May 2009.

YS Maarek, DM Berry, GE Kaiser An information retrieval approach for automatically constructing software libraries IEEE Transactions on SE 1991

WB Frakes, BA Nejmeh Software reuse through information retrieval - ACM SIGIR Forum

Jonas Tappolet, Christoph Kiefer , Abraham Bernstein Semantic web enabled software analysis Web Semantics: Science, Services and Agents on the World Wide Web Volume 8, Issues 2–3, July 2010, Pages 225–240

J. Dietrich, C. Elgar, A formal description of design patterns using OWL, Proceedings of the Australian Software Engineering Conference, Brisbane, Australia (2005)

D. Hyland-Wood, D. Carrington, S. Kapplan, Toward a software maintenance methodology using semantic web techniques Proceedings of the 2nd ICSM International Workshop on Software Evolvability (SE) (2006), pp. 23–30

Sridhara, G., Automatically detecting and describing high level actions within methods, 2011 33rd International Conference on Software Engineering (ICSE)

Emily Hill, Lori Pollock and K. Vijay-Shanker, Automatically Capturing Source Code Context of NL-Queries for Software Maintenance and Reuse, ICSE’09, May 16-24, 2009, Vancouver, Canada

Hamid Haidarian Shahri, James A. Hendler, Adam A. Porter, Software Configuration Management Using Ontologies, 3rd International Workshop on Semantic Web Enabled Software Engineering (SWESE 2007)

Bruno Antunes, Paulo Gomes, SRS: A Software Reuse System based on the Semantic Web, 3rd International Workshop on Semantic Web Enabled Software Engineering (SWESE 2007)

Full-size image (165 K)

proposed a system using Semantic Web techniques to encode system metadata and demonstrate the particular advantages that those techniques offer. Specifically, showed how the use of an OWL-DL ontology of software engineering concepts, RDF encoding of system metadata and SPARQL queries over the resulting graph may be used to enable language-neutral relational navigation of software systems thus facilitating software understanding and maintenance

key insight is that the context of words surrounding the query terms in the code is important to quickly determine result relevance and reformulate queries.