Semantic Web for Software
Some resources on Semantic WEB for Software
Events/Portals
- The 1st Workshop on Engineering the Semantic Desktop (SEMDeskEng 2007)
- The 3rd International Workshop on Semantic Web Enabled Software Engineering (SWESE 2007)
- The 2nd International Workshop on Semantic Web Enabled Software Engineering (SWESE 2006)
- The 1nd International Workshop on Semantic Web Enabled Software Engineering (SWESE 2005)
- The 2nd Workshop on Ontologies and Metamodels in Software Engineering (WOMSDE 2007)
- The 1st Workshop on Ontologies and Metamodels in Software Engineering (WOMSDE 2006)
- The 4th International Workshop on (Software) Language Engineering (ATEM 2007)
- The 3rd International Workshop on (Software) Language Engineering (ATEM 2006)
- The 2nd International Workshop on (Software) Language Engineering (ATEM 2004)
- The 1st International Workshop on (Software) Language Engineering (ATEM 2003)
- Portal of Model-Driven Engineering (planet-mde)
- The International Zoo of MetaModels Schemas, Grammars and Ontologies for Software Engineering
General Papers
Code Querying and Analysis Tools
- Open source bddbddb (BDD-Based Deductive DataBase) from Stanford U. Project web
- CodeQuest from Oxford U. Keynote Address: .QL for Source Code Analysis
- RuleML
- Open source JQuery from UBC
- Open source JayFx from McGill U.
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)
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.