WebOfPatterns: Bridging Semantic Web and Social Networks for Smarter Software Engineering
Using social networking and semantic web technology in software engineering – Use cases, patterns, and a case study
The paper introduces WebOfPatterns (WOP), a framework that integrates Semantic Web technologies (RDF, OWL, SWRL) with Social Networking (Web 2.0 services) to share and validate software engineering knowledge artefacts. It features an Eclipse-based client capable of discovering, publishing, and x-raying Java projects for design patterns using a formal design ontology.
TL;DR
Knowledge sharing in software engineering is evolving from passive human-readable text to active, machine-interpretable artefacts. This paper presents WebOfPatterns (WOP), a framework that uses Semantic Web standards (RDF/OWL) to formalize design patterns and Social Web APIs (like del.icio.us and Swoogle) to validate their trustworthiness. The result is an Eclipse plugin that can discover, verify, and automatically detect design patterns in Java codebases.
Background & Positioning
Since the "Gang of Four" popularized design patterns in the 90s, the way we share them has remained largely stagnant—books and mailing lists. While scholarly work has explored formalizing these patterns, the problem of discovery and trust persists. WOP positions itself as a bridge, moving beyond static libraries to a dynamic, decentralized ecosystem where tools can "consume" patterns published by the community.
The Core Challenge: The Trust Vacuum in Open Networks
If anyone can publish a formal definition of a "Singleton" or "Observer" pattern on the web, how does an automated scanner know which definition is correct, optimized, or even malicious?
- Prior Work Limitation: Formal ontologies (OWL) define structure but not credibility.
- The Insight: Use Web 2.0 "social signals" as a proxy for quality. A pattern bookmarked by hundreds of developers or highly ranked on a semantic search engine is likely more "trustworthy" than an obscure, unrated one.
Methodology: The "Distributed Properties" Architecture
The authors implement a clever "Contributed Properties" design. Instead of a monolithic database, the WOP client treats every pattern repository as a dynamic object that gains properties from various providers at runtime.
Architectural Flow
- Discovery: Scours the web via Swoogle or social tags.
- Harmonization: Combines explicit metadata (Dublin Core) with harvested social data (bookmark counts, ratings).
- Reasoning: Uses SWRL (Semantic Web Rule Language) to apply trust rules. For example: If a repository uses HTTPS AND has more than 5 bookmarks, mark it as Trustworthy.
Fig 1: The WOP Client Design showing the integration of the pattern scanner with social network extension points.
Experiments and Results
The authors validated the approach through an Eclipse-based implementation. They demonstrated that the scanner could effectively "X-ray" Java projects by treating RDF predicates as constraints for a specialized solver.
Key Integration Points
The system doesn't rely on a single source of truth. As seen in the table below, it aggregates data across a heterogeneous landscape of APIs:
Table 1: Comparison of social providers and the specific services (Discovery, Publishing, Feedback) they provide to the WOP client.
By combining these signals, the client produces a "Properties View" for every pattern, allowing a developer to see at a glance if a pattern is "Valid" and who created it, alongside its social "OntoRank."
Deep Insight & Conclusion
The Takeaway
The genius of this work isn't just in the formal logic—it's in the realization that Semantics + Social = Scalability. By using Web 2.0 services as a "middleware" for trust, the authors solve the problem of central authority. The "Distributed Properties" pattern described here is highly applicable to other domains, such as sharing refactoring scripts or security antipatterns.
Limitations & Future Work
The reliance on specific services like del.icio.us (which has since faded) highlights the fragility of specific API integrations. However, the logic remains sound: future iterations could swap these for GitHub Stars or StackOverflow reputation points. The authors also note that OWL alone isn't enough to define the "intended model" of a pattern, suggesting that "procedural attachments" (actual code constraints) are a necessary evil in formal software ontologies.
Final Thought
As we move toward a world of AI-assisted coding, the principles of WebOfPatterns—formalizing knowledge while crowdsourcing trust—provide a critical foundation for the next generation of autonomous development tools.
