E N D
1. Ontology-Driven Software Development with Protg and OWL Holger Knublauch
Stanford Medical Informatics
holger@smi.stanford.edu
Model-Driven Semantic Web Workshop
21.09.2004
2. Protg
3. Protg / OWL Plugin
4. Protg / OWL Plugin
5. Overview How to develop Semantic Web applications?
Example
Architecture and OWL-Java mapping
Tool support
Can we apply this to general purpose MDA?
OWL is often more suitable than UML
Major benefit: Semantics at edit-time & run-time
6. Example Scenario
7. Traditional Web Architecture
8. Semantic Web Architecture
9. Ontologies
10. Software Architecture (1)
11. Ontology Code in Java
12. UML to Java (conventional)
13. OWL to Java (Jena)
14. Working with Jena Classes
15. Software Architecture (2)
16. Dynamic Object Model Model is accessible at run-time:
Generic algorithms/reasoners can be executed
Generic test cases available at run-time
Generic serialization, database storage etc.
Generic user interfaces can be generated
Classes can be handled as individuals (Metaclasses are supported)
Instances can have multiple types(dynamic polymorphism using Jena API)
Instances can be classified & change types
17. Other OWL to Java Benefits Traditional Code:
Code based on generated Jena classes:
18. Generalizing This Approach Every program has a domain model
Customers, Accounts, Products
Patients, Diseases, Treatments
Domain model is potentially most reusable
No real need for UML
Paradigm shift to anew dialect of OO
19. Dynamic Object Models and MDA MDA taken to extremes
Design not only to generate code
Design is part of the deployed system
Open ontologies to share between applications
Machine-accessible semantics at run-time
Built-in reflection across metalevels
However: Limited expressivity of OWL; Coding needed (procedural attachment).
20. Advantages of OWL over UML Explicit, sharable modeling artifacts
Open architecture of Semantic Web
OWL has rich semantics
closer to domain than UML
built-in reasoning support (DL, SWRL)
A single language across metalevels
21. Strengths of tools like Protg Can be used by domain experts
Better scalable than visual UML modeling
Reasoning support at edit-time
Rapid prototyping of models
Individuals can be acquired using forms
Open architecture / adaptability
Start your application as a plugin
22. Ontology-Driven Development
23. Future Work with Protg (1) Embrace UML, encourage use of OWL
Incremental OWL-Java code generation
Determine optimal mapping OWL to Java,(using an example application)
Define rules for updating code in response to changes in the ontology (create, rename, etc).
Write Eclipse plugin to perform the updating (either directly or in batch mode)
24. Future Work with Protg (2) Use Protg as an ODM editor
Map core Protg metamodel to RDF(S)
Collaborations?