210 likes | 222 Views
This overview discusses the use of Semantic Web concepts to organize software patterns and create a collective knowledge structure for developers. It also explores the challenges and approaches to delivering and tailoring patterns in the software development process.
E N D
Using the Semantic Web to Construct an Ontology-Based Repository for Software Patterns Scott Henninger Computer Science and Engineering University of Nebraska-Lincoln
Overview • Patterns as a knowledge representation and dissemination medium • problem: very informal • problem: no formal way to represent between patterns • pattern language is lacking • using Semantic Web concepts to organize patterns • Combining rule-based and semantic web representations • rules used to choose appropriate patterns • pattern relationships make inferences on related patterns, other artifacts developer may need/want • Community-based ontology construction • building collective knowledge structures ASE PC Workshop
Pattern Proliferation • Many different types of patterns • design patterns (well beyond original GOF) • usability patterns (growing following) • organizational patterns (projects, etc.) • Alexander would be pleased • original vision was that patterns are combined to construct a complete solution • hence a pattern “language” • Which one to use when? ASE PC Workshop
Our Approach • Many researchers have created usability patterns, few focus on how to make patterns usable • …for software developers • generalized for repeatability, reaching a widespread audience • do abstract patterns really help? • an unexplored empirical question • Weak vs. Strong Methods [Vessey, Glass, CACM, 98] • specific examples shown to be most useful for Guideline usability • General hypothesis: Need to support a range of conceptual levels • brings a new set of challenges • How do we keep track of all those patterns? • How do we find the “right” one (or more)? • How do we know what the software developer’s needs are? ASE PC Workshop
Our Approach (con’t) • Knowledge delivery (part 1) • developers don’t always know an applicable pattern exists • create “applicability rules” for patterns • integrate with a workflow/software process tool • related to agent-based approaches • Knowledge Delivery (part 2) • patterns are delivered to user • use semantic relationships to suggest/require other patterns • where implementations exist, use them • Capture experience-based knowledge • capture the context in which resources are applicable • part of the design and development process ASE PC Workshop
BORE • Building an Organizational Repository of Experiences • rule-based tailoring of software development activities • deliver knowledge through process ASE PC Workshop
Tailoring Rules • Add tasks resources to project, including patterns ASE PC Workshop
resource modification resource modification rule modification rule modification external sources of modification Situated Process Evolution ASE PC Workshop
Displaying Patterns ASE PC Workshop
Patterns Trigger Semantic Web • Search for related patterns ASE PC Workshop
Semantic Web • Really a concept • machine interpretable representations • define “semantic” content • many competing languages, techniques • mostly in the research stage • in terms of both ontology languages and agents Semantic Web architecture ASE PC Workshop
Agents Annotated Web Pages Web Page Rendering Meta-Data (RDFS) Decision Support System XSL File Operational View of Semantic Web Ontology Construction Tool Ontologies ASE PC Workshop
RDF and RDFS • RDF (Resource Description Framework) • based on XML • model for representing things (objects) on the Web • RDF description is a list of triples consisting of • an object (resource in RDF terminology) • an attribute (property in RDF terminology) • a value (a resource or text) • RDFS (RDF Schema) • defines meta-data primitives for creating ontologies • concepts and relationships between them • allows creation of a hierarchy of classes • allows multiple inheritance • instances of classes are placed on the Web ASE PC Workshop
Example RDF File ASE PC Workshop
Ontology Meta-Data (RDFS) ASE PC Workshop
Instances (RDF) ASE PC Workshop
Knowledge Representation • Using Semantic Web to create ontologies • Web-based languages for describing taxonomies, relationships • people choose the appropriate class for their pattern • use “semantic” tags to markup the pattern • agents are created to make inferences about patterns • our agent is BORE – you can create your own • technology still a bit immature • but usable with some effort • Use the Web as a dissemination medium • world-wide accessibility can facilitate group discussion • especially when geographically dispersed (such as this group) • open source frameworks • “drawing on collective intelligence” ASE PC Workshop
Adding New Instances • Flyover shows RDFS attributes ASE PC Workshop
Assign Values to Attributes • Based on schema values • interface to avoid RDF syntax… ASE PC Workshop
Current Status • Still in early phases of development • technology and tools are not mature • Beta version by end of summer • seed with some existing patterns on Web • author permission or pointer to book/paper • invite people to add/modify patterns • establish a community of usability pattern developers • …that start using the Semantic Web • proof-of-concept prototype for researching pattern issues • analyze what patterns are needed for better coverage, etc. • broaden to other pattern communities • http://cse-ferg41.unl.edu/bore.html ASE PC Workshop
Next Steps • DAML+OIL will replace RDF • using Protégé – an ontology building tool • plug-in for many languages, including RDF and DAML • Construct a validation process • experts in usability areas validate structure and instances • ala Answer Garden, Experts Exchange, etc. • mechanisms for argumentation and consensus • argumentation: defines context • Darwinian natural selection (use in project activities) ASE PC Workshop