REWERSE WG I3: Composition Framework & Tool demo 5 December 2006.

Slides:



Advertisements
Similar presentations
Querying on the Web: XQuery, RDQL, SparQL Semantic Web - Spring 2006 Computer Engineering Department Sharif University of Technology.
Advertisements

Schema Matching and Query Rewriting in Ontology-based Data Integration Zdeňka Linková ICS AS CR Advisor: Július Štuller.
CH-4 Ontologies, Querying and Data Integration. Introduction to RDF(S) RDF stands for Resource Description Framework. RDF is a standard for describing.
1 1 Strategic Programming in Java Pierre-Etienne Moreau Antoine Reilles Stratego User Day, December, 1 st, 2006.
Md. Mahbub Hasan University of California, Riverside.
XML Technology in E-Commerce
SSP Re-hosting System Development: CLBM Overview and Module Recognition SSP Team Department of ECE Stevens Institute of Technology Presented by Hongbing.
1 Rewriting Nested XML Queries Using Nested Views Nicola Onose joint work with Alin Deutsch, Yannis Papakonstantinou, Emiran Curtmola University of California,
6/10/2015Martin Odersky, LAMP, EPFL1 Programming Language Abstractions for Semi-Structured Data Martin Odersky Sebastian Maneth Burak Emir EPFL.
ModelicaXML A Modelica XML representation with Applications Adrian Pop, Peter Fritzson Programming Environments Laboratory Linköping University.
Visual Web Information Extraction With Lixto Robert Baumgartner Sergio Flesca Georg Gottlob.
On management aspects of future ICT systems Associate Professor Evgeny Osipov Head of Dependable Communication and Computation group Luleå University of.
Satzinger, Jackson, and Burd Object-Orieneted Analysis & Design
Databases: Some Research Opportunities For Latin America Marcelo Arenas Pontificia Universidad Católica de Chile Marcelo Arenas Pontificia Universidad.
Reuse Activities Selecting Design Patterns and Components
KBS-HYPERBOOK An Open Hyperbook System for Education Peter Fröhlich, Wolfgang Nejdl, Martin Wolpers University of Hannover.
Towards Constraint-based Explanations for Answers and Non-Answers Boris Glavic Illinois Institute of Technology Sean Riddle Athenahealth Corporation Sven.
UNIT-V The MVC architecture and Struts Framework.
Deriving AO Software Architectures using the AO-ADL Tool Suite Luis Fernández, Lidia Fuentes, Mónica Pinto, Juan A. Valenzuela Universidad de Málaga
Knowledge Mediation in the WWW based on Labelled DAGs with Attached Constraints Jutta Eusterbrock WebTechnology GmbH.
Outline Introduction Problem Statement Object-Oriented Design Aspect-Oriented Design Conclusion Demo.
Xactium xDSLs Run Models Not Code Tony Clark
Model Transformations
 Copyright 2005 Digital Enterprise Research Institute. All rights reserved. Towards Translating between XML and WSML based on mappings between.
C++ Code Analysis: an Open Architecture for the Verification of Coding Rules Paolo Tonella ITC-irst, Centro per la Ricerca Scientifica e Tecnologica
XML-QL A Query Language for XML Charuta Nakhe
1 XML-KSI, 2004 XML- : an extendible framework for manipulating XML data Jaroslav Pokorny Charles University Praha.
Graph Data Management Lab, School of Computer Science gdm.fudan.edu.cn XMLSnippet: A Coding Assistant for XML Configuration Snippet.
Peer-to-Peer Data Integration Using Distributed Bridges Neal Arthorne B. Eng. Computer Systems (2002) Supervisor: Babak Esfandiari April 12, 2005 Candidate.
A REFACTORING TOOL FOR DESIGN PATTERNS WITH MODEL TRANSFORMATIONS Zekai Demirezen Yasemin Topaloğlu Ege University Department of Computer Engineering
Interoperability in Information Schemas Ruben Mendes Orientador: Prof. José Borbinha MEIC-Tagus Instituto Superior Técnico.
DEVS Namespace for Interoperable DEVS/SOA
Formalizing the Asynchronous Evolution of Architecture Patterns Workshop on Self-Organizing Software Architectures (SOAR’09) September 14 th 2009 – Cambrige.
© DATAMAT S.p.A. – Giuseppe Avellino, Stefano Beco, Barbara Cantalupo, Andrea Cavallini A Semantic Workflow Authoring Tool for Programming Grids.
A language to describe software texture in abstract design models and implementation.
SPARQL Query Graph Model (How to improve query evaluation?) Ralf Heese and Olaf Hartig Humboldt-Universität zu Berlin.
1 Proving aspect-oriented programming laws Leonardo Cole Paulo Borba Alexandre Mota Informatics Center Federal University of.
Tuscany: a SOA framework Jeffrey Guo Accelrys, Inc.
Sheet 1 DocEng’03, Grenoble, November 2003 Model Driven Architecture based XML Processing Ivan Kurtev, Klaas van den Berg University of Twente, the Netherlands.
© Siemens AG, CT SE 2 C O R P O R A T E T E C H N O L O G Y 1 Model-Driven Development for Pluggable Collaborations Iris Groher, Stephan Bleicher, Christa.
User Profiling using Semantic Web Group members: Ashwin Somaiah Asha Stephen Charlie Sudharshan Reddy.
1 Typing XQuery WANG Zhen (Selina) Something about the Internship Group Name: PROTHEO, Inria, France Research: Rewriting and strategies, Constraints,
XFormsDB An XForms - Based Framework for Simplifying Web Application Development Markku Laine Master’s Thesis Presentation March 9, 2010.
Cooperative Computing & Communication Laboratory A Survey on Transformation Tools for Model-Based User Interface Development Robbie Schäfer – Paderborn.
Getting Started with the Open Services Gateway Initiative (OSGi) CNT 5517 Dr. Sumi Helal, Ph.D. Professor Computer & Information Science & Engineering.
Protocol Derivation Assistant Matthias Anlauff Kestrel Institute
Dec. 13, 2002 WISE2002 Processing XML View Queries Including User-defined Foreign Functions on Relational Databases Yoshiharu Ishikawa Jun Kawada Hiroyuki.
Conclusions Presenter: Manolis Koubarakis Extended Semantic Web Conference 2012.
Review of Parnas’ Criteria for Decomposing Systems into Modules Zheng Wang, Yuan Zhang Michigan State University 04/19/2002.
Advanced Object-oriented Design Patterns Creational Design Patterns.
® IBM Software Group A Metamodeling Approach to Pattern Specification Maged Elaasar 1,2, Dr. Lionel Briand 1, Dr. Yvan Labiche 1 1 Carleton University,
Nigel Baker UWE & CERN/EP-CMA Design Patterns for Integrating Product and Process Models The C.R.I.S.T.A.L. Project ( C ooperative R epositories & I nformation.
OWL Web Ontology Language Summary IHan HSIAO (Sharon)
Semantic Interoperability in GIS N. L. Sarda Suman Somavarapu.
Sheet 1 Forum on Specification and Design Languages (FDL), Frankfurt, September 2003 UML to XML-Schema Transformation: a Case Study in Managing Alternative.
Design Pattern Support based on principles of model driven development Zihao Zhao.
Sheet 1MDAFA2004 Linköping, June 2004 A Language for Model Transformations in the MOF Architecture Ivan Kurtev, Klaas van den Berg University of Twente,
Subtopics: 1. Frameworks :Reusable systems 2. Design Patterns 1.
Mechanisms for Requirements Driven Component Selection and Design Automation 최경석.
Modeling of Service Oriented Architecture: From Business Process to Service Realization Petr Weiss and Marek Rychlý Brno University of Technology, Faculty.
Web Ontology Language for Service (OWL-S)
Designing Software for Ease of Extension and Contraction
The Extensible Tool-chain for Evaluation of Architectural Models
Implementing Language Extensions with Model Transformations
Piotr Kaminski University of Victoria September 24th, 2002
Ivan Kurtev, Klaas van den Berg Software Engineering Group
Towards an Open Meta Modeling Environment
Execute your Processes
Implementing Language Extensions with Model Transformations
Dependency Inversion principle
Presentation transcript:

REWERSE WG I3: Composition Framework & Tool demo 5 December 2006

5th December 2006Jakob Henriksson, REWERSE WG I3: Composition and Typing 2 Motivational example: Xcerpt modules subClassOf(X,Y) :- rdfs:subClassOf(X,Y). subClassOf(X,Y) :- rdfs:subClassOf(X,Z), subclassOf(Z,Y). subClassOf(X,Y) :- rdfs:subClassOf(X,Y). subClassOf(X,Y) :- rdfs:subClassOf(X,Z), subclassOf(Z,Y). Historical Novel Writing owl:Class rdfs:subClassOf R1 CONSTRUCT writings [ all var X ] FROM or { var X rdf:type “Writing”, and { var X rdf:type var S, subClassOf(S, “Writing”) } } END CONSTRUCT writings [ all var X ] FROM or { var X rdf:type “Writing”, and { var X rdf:type var S, subClassOf(S, “Writing”) } } END R2

5th December 2006Jakob Henriksson, REWERSE WG I3: Composition and Typing 3 import CONSTRUCT writings [ all var X ] FROM or { var X rdf:type “Writing”, and { var X rdf:type var S, subClassOf(S, “Writing”) } } END import CONSTRUCT writings [ all var X ] FROM or { var X rdf:type “Writing”, and { var X rdf:type var S, subClassOf(S, “Writing”) } } END subClassOf(X,Y) :- rdfs:subClassOf(X,Y). subClassOf(X,Y) :- rdfs:subClassOf(X,Z), subclassOf(Z,Y). subClassOf(X,Y) :- rdfs:subClassOf(X,Y). subClassOf(X,Y) :- rdfs:subClassOf(X,Z), subclassOf(Z,Y). program module “White Mughals” rdf:type “Historical Novel” … data Historical Novel Writing owl:Class rdfs:subClassOf

5th December 2006Jakob Henriksson, REWERSE WG I3: Composition and Typing 4 Outline Preliminaries –Xcerpt –Fragment components Composition Framework –Complex composition operators Examples –Modules for Xcerpt, revisited –Ontology modeling decisions Conclusions

5th December 2006Jakob Henriksson, REWERSE WG I3: Composition and Typing 5 Xcerpt: Introduction (1/2) Query and transformation language for XML [Schaffertet al., 2004] Data terms –Model XML documents T A book [ title [ “T” ], author [ “A” ] ] Query terms –Patterns matching data terms resulting in answer substitutions book [ title [ var X ], author [ var Y ] ]  { X / “T”, Y / “A” } Construct terms –Data terms with variables to be instantiated –Builds data terms by applying answer substitutions

5th December 2006Jakob Henriksson, REWERSE WG I3: Composition and Typing 6 Xcerpt: Introduction (2/2) Xcerpt programs: –A set of rules of the form: –head is a construct term –body is a set of query terms connected using connectives: AND or OR CONSTRUCT head FROM body END GOAL head FROM body END

5th December 2006Jakob Henriksson, REWERSE WG I3: Composition and Typing 7 Xcerpt: Example I CONSTRUCT results { all result { var Title, all var Author } FROM bib {{ book {{ var Title → title, authors {{ var Author → author }} END CONSTRUCT results { all result { var Title, all var Author } FROM bib {{ book {{ var Title → title, authors {{ var Author → author }} END List all Authors for each Title data bib [ book [ title [ “White Mughals” ], authors [ author [ “William Dalrymple” ] ] ] … ]

5th December 2006Jakob Henriksson, REWERSE WG I3: Composition and Typing 8 Xcerpt: Example II CONSTRUCT results { all result { all var Title, var Author } FROM bib {{ book {{ var Title → title, authors {{ var Author → author }} END CONSTRUCT results { all result { all var Title, var Author } FROM bib {{ book {{ var Title → title, authors {{ var Author → author }} END List all Titles for each Author data bib [ book [ title [ “White Mughals” ], authors [ author [ “William Dalrymple” ] ] ] … ]

5th December 2006Jakob Henriksson, REWERSE WG I3: Composition and Typing 9 Xcerpt: Example I + II CONSTRUCT results { all result { var Title, all var Author } FROM bib {{ book {{ var Title → title, authors {{ var Author → author }} END CONSTRUCT results { all result { var Title, all var Author } FROM bib {{ book {{ var Title → title, authors {{ var Author → author }} END CONSTRUCT results { all result { all var Title, var Author } FROM bib {{ book {{ var Title → title, authors {{ var Author → author }} END CONSTRUCT results { all result { all var Title, var Author } FROM bib {{ book {{ var Title → title, authors {{ var Author → author }} END data bib [ book [ title [ “White Mughals” ], authors [ author [ “William Dalrymple” ] ] ] … ]

5th December 2006Jakob Henriksson, REWERSE WG I3: Composition and Typing 10 CONSTRUCT results { all result { var Title, all var Author } FROM bib {{ book {{ var Title → title, authors {{ var Author → author }} END CONSTRUCT results { all result { var Title, all var Author } FROM bib {{ book {{ var Title → title, authors {{ var Author → author }} END CONSTRUCT results { all result { all var Title, var Author } FROM bib {{ book {{ var Title → title, authors {{ var Author → author }} END CONSTRUCT results { all result { all var Title, var Author } FROM bib {{ book {{ var Title → title, authors {{ var Author → author }} END Xcerpt: Example I + II bib {{ book {{ var Title → title, authors {{ var Author → author }} bib {{ book {{ var Title → title, authors {{ var Author → author }} bib {{ book {{ var Title → title, authors {{ var Author → author }} bib {{ book {{ var Title → title, authors {{ var Author → author }} data bib [ book [ title [ “White Mughals” ], authors [ author [ “William Dalrymple” ] ] ] … ]

5th December 2006Jakob Henriksson, REWERSE WG I3: Composition and Typing 11 Fragment components CONSTRUCT results { all result {, all } FROM END CONSTRUCT results { all result {, all } FROM END bib {{ book {{ → title, authors {{ → author }} bib {{ book {{ → title, authors {{ → author }} Query Component var Title var Author Variable Component Variable Component Construct Component = variation point

5th December 2006Jakob Henriksson, REWERSE WG I3: Composition and Typing 12 Component model: Xcerpt bib {{ book {{ var Title → title, authors {{ var Author → author }} bib {{ book {{ var Title → title, authors {{ var Author → author }} Query Component Type: NamedVariable

5th December 2006Jakob Henriksson, REWERSE WG I3: Composition and Typing 13 Component model: Xcerpt = slot bib {{ book {{ → title, authors {{ → author }} bib {{ book {{ → title, authors {{ → author }} Type: ??? Query Component

5th December 2006Jakob Henriksson, REWERSE WG I3: Composition and Typing 14 Component model: Xcerpt Type: VariableSlot = slot bib {{ book {{ → title, authors {{ → author }} bib {{ book {{ → title, authors {{ → author }} Query Component

5th December 2006Jakob Henriksson, REWERSE WG I3: Composition and Typing 15 CONSTRUCT results { all result { var Title, all var Author } } FROM in { resource { " }, bib {{ book {{ var Title → title, authors {{ var Author→ author }} }} }} } END CONSTRUCT results { all result { var Title, all var Author } } FROM in { resource { " }, bib {{ book {{ var Title → title, authors {{ var Author→ author }} }} }} } END CONSTRUCT … FROM … END Primitive Xcerpt composition – under the hood Program CQRule rules : CQRule con : Construct query : QueryTerm Metamodel of Xcerpt+ - Model of the language Instance of the metamodel - Model of a program ASTs of fragments var Title var Author in { resource { … } instance of → Slot subset of Fragment … … Common upper-level models 0..*

5th December 2006Jakob Henriksson, REWERSE WG I3: Composition and Typing 16 Primitive composition: Summary Invasive software composition [Aßmann, 2003] Language independent –Extend any language to support primitive composition operators for: Binding slots (genericity) Extending hooks (extensibility) Can simulate existing grey-box composition techniques –E.g. aspect orientation Flexible and general approach, but: –Not able to address specific language’s needs

5th December 2006Jakob Henriksson, REWERSE WG I3: Composition and Typing 17 Outline Preliminaries –Xcerpt –Fragment components Composition Framework –Complex composition operators Examples –Modules for Xcerpt, revisited –Ontology modeling decisions Conclusions

5th December 2006Jakob Henriksson, REWERSE WG I3: Composition and Typing 18 Fragment components, revisited CONSTRUCT results { all result {, all } FROM END CONSTRUCT results { all result {, all } FROM END bib {{ book {{ → title, authors {{ → author }} bib {{ book {{ → title, authors {{ → author }} Query Component var Title var Author Variable Component Variable Component Construct Component = variation point

5th December 2006Jakob Henriksson, REWERSE WG I3: Composition and Typing 19 Composition program CONSTRUCT results { all result {, all } FROM END CONSTRUCT results { all result {, all } FROM END bib {{ book {{ → title, authors {{ → author }} bib {{ book {{ → title, authors {{ → author }} Query Component var Title var Author Variable Component Variable Component Construct Component = variation point > bind /title.variable bind /author.variable bind /myquery.query

5th December 2006Jakob Henriksson, REWERSE WG I3: Composition and Typing 20 CONSTRUCT results { all result { all } FROM END >, > bib {{ book {{ → title, authors {{ → author }} > Composition program /myquery.query var Title var Author /title.variable /author.variable bind /myquery.query bind /author.variable bind /title.variable bind /author.variable // load fragments fragment xcerpt.ConstructRule Program = /main.xcerpt; fragment xcerpt.Variable Title = /title.variable; fragment xcerpt.Variable Author = /author.variable; fragment xcerpt.Query Query = /myquery.query; // bind fragments bind var1 on Program with Title; bind var2 on Program with Author; bind var1 on Query with Title; bind var2 on Query with Author; bind query on Program with Query; // output result print Program; /main.xcerpt Composition program

5th December 2006Jakob Henriksson, REWERSE WG I3: Composition and Typing 21 Defining composers define composer name (args) { // load fragments fragment xcerpt.ConstructRule Program = /main.xcerpt; fragment xcerpt.Variable Title = /title.variable; fragment xcerpt.Variable Author = /author.variable; fragment xcerpt.Query Query = /myquery.query; // bind fragments bind var1 on Program with Title; bind var2 on Program with Author; bind var1 on Query with Title; bind var2 on Query with Author; bind query on Program with Query; // output result print Program; } Composer definition CONSTRUCT results { all result { all } FROM END >, > bib {{ book {{ → title, authors {{ → author }} > /myquery.query var Title var Author /title.variable /author.variable bind /myquery.query bind /author.variable bind /title.variable bind /author.variable /main.xcerpt

5th December 2006Jakob Henriksson, REWERSE WG I3: Composition and Typing 22 Complex compositions: Summary Beyond primitive composers: bind and extend –User-definable complex composers Allow language targeted composition operators Capable composition language needed, for: –Writing composition programs –Defining new composers Implemented and integrated into Eclipse –E-CoMoGen –[demo at the end]

5th December 2006Jakob Henriksson, REWERSE WG I3: Composition and Typing 23 Outline Preliminaries –Xcerpt –Fragment components Composition Framework –Complex composition operators Examples –Modules for Xcerpt, revisited –Ontology modeling decisions Conclusions

5th December 2006Jakob Henriksson, REWERSE WG I3: Composition and Typing 24 Example I: Modules for Xcerpt, revisited Motivation –No module system exists for Xcerpt Globally re-usable rules/functions (XQuery, Logic Programming) –Compose instead of implementing into an Xcerpt engine General module system requirements: (1) Make available rules to calling module Import and Export (2) Code protection Called module protection Calling module protection Called module Calling module importexport

5th December 2006Jakob Henriksson, REWERSE WG I3: Composition and Typing 25 (1) Xcerpt modules: importation define composer reusexcerpt.ImportComposer(moduleLocation, ruleName, args) { fragment xcerpt.Program module = -> moduleLocation; foreach (element : args) { bind ->element.slot on module with element.value; } return module.statements; } define composer reusexcerpt.ImportComposer(moduleLocation, ruleName, args) { fragment xcerpt.Program module = -> moduleLocation; foreach (element : args) { bind ->element.slot on module with element.value; } return module.statements; } Simple import composer definition

5th December 2006Jakob Henriksson, REWERSE WG I3: Composition and Typing 26 (1) Xcerpt modules: importation import CONSTRUCT writings [ all var X ] FROM or { var X rdf:type “Writing”, and { var X rdf:type var S, subClassOf(S, “Writing”) } } END import CONSTRUCT writings [ all var X ] FROM or { var X rdf:type “Writing”, and { var X rdf:type var S, subClassOf(S, “Writing”) } } END subClassOf(X,Y) :- rdfs:subClassOf(X,Y). subClassOf(X,Y) :- rdfs:subClassOf(X,Z), subclassOf(Z,Y). subClassOf(X,Y) :- rdfs:subClassOf(X,Y). subClassOf(X,Y) :- rdfs:subClassOf(X,Z), subclassOf(Z,Y). subClassOf(X,Y) :- rdfs:subClassOf(X,Y). subClassOf(X,Y) :- rdfs:subClassOf(X,Z), subclassOf(Z,Y). CONSTRUCT writings [ all var X ] FROM or { var X rdf:type “Writing”, and { var X rdf:type var S, subClassOf(S, “Writing”) } } END subClassOf(X,Y) :- rdfs:subClassOf(X,Y). subClassOf(X,Y) :- rdfs:subClassOf(X,Z), subclassOf(Z,Y). CONSTRUCT writings [ all var X ] FROM or { var X rdf:type “Writing”, and { var X rdf:type var S, subClassOf(S, “Writing”) } } END compose program module program’

5th December 2006Jakob Henriksson, REWERSE WG I3: Composition and Typing 27 (2) Xcerpt modules: code protection One solution: wrapping define composer reusexcerpt.ImportComposer(moduleLocation, ruleName, args) { fragment xcerpt.Program module = -> moduleLocation; foreach (r : module.statements) { if (r instanceof reusexcerpt.ModifiedConstruct && r.modifier instanceof reusexcerpt.PublicModifier && r.construct.construct.localSpec.label equals ruleName) { bind r with r.construct; } else { if (r instanceof reusexcerpt.ModifiedConstruct) { bind r with r.construct; fragment xcerpt.ConstructQueryRule r = r.construct; } fragment xcerpt.NCName secretName = ?.xcerpt; fragment xcerpt.ConstructTerm ct = r.construct; fragment xcerpt.ConstructTerm ctWrapper = ’ > [ > ]’.rxcerpt; bind hiddenCt on ctWrapper with ct; bind secretName on ctWrapper with secretName; bind ct with ctWrapper; foreach(rule : module.statements) { traverse(qt : rule.query) { if (qt instanceof xcerpt.StructuredQt) { if (qt.localSpec.label equals ct.localSpec.label) { fragment xcerpt.QueryTerm qtWrapper = ’ > [ > ]’.rxcerpt; bind hiddenQt on qtWrapper with qt; bind secretName on qtWrapper with secretName; bind qt with qtWrapper; } prune; } } } define composer reusexcerpt.ImportComposer(moduleLocation, ruleName, args) { fragment xcerpt.Program module = -> moduleLocation; foreach (r : module.statements) { if (r instanceof reusexcerpt.ModifiedConstruct && r.modifier instanceof reusexcerpt.PublicModifier && r.construct.construct.localSpec.label equals ruleName) { bind r with r.construct; } else { if (r instanceof reusexcerpt.ModifiedConstruct) { bind r with r.construct; fragment xcerpt.ConstructQueryRule r = r.construct; } fragment xcerpt.NCName secretName = ?.xcerpt; fragment xcerpt.ConstructTerm ct = r.construct; fragment xcerpt.ConstructTerm ctWrapper = ’ > [ > ]’.rxcerpt; bind hiddenCt on ctWrapper with ct; bind secretName on ctWrapper with secretName; bind ct with ctWrapper; foreach(rule : module.statements) { traverse(qt : rule.query) { if (qt instanceof xcerpt.StructuredQt) { if (qt.localSpec.label equals ct.localSpec.label) { fragment xcerpt.QueryTerm qtWrapper = ’ > [ > ]’.rxcerpt; bind hiddenQt on qtWrapper with qt; bind secretName on qtWrapper with secretName; bind qt with qtWrapper; } prune; } } }

5th December 2006Jakob Henriksson, REWERSE WG I3: Composition and Typing 28 Example II: Ontology modeling decisions [Reference:

5th December 2006Jakob Henriksson, REWERSE WG I3: Composition and Typing 29 Example II: Ontology fragment components :LionsLifeInThePrideBook a :Book; :bookTitle "Lions: Life in the Pride"; dc:subject >. :TheAfricanLionBook a :Book; :bookTitle "The African Lion"; dc:subject >.

5th December 2006Jakob Henriksson, REWERSE WG I3: Composition and Typing 30 define composer n3pcl.ClassAsPropertyValue1(ontology, valueSlot, valueClassName) { bind ->valueSlot on ->ontology with valueClassName; } Example II: Ontology composer I

5th December 2006Jakob Henriksson, REWERSE WG I3: Composition and Typing 31 Example II: Ontology composer II define composer n3pcl.ClassAsPropertyValue2(ontology, valueSlot, valueClassName) { fragment n3.Resource individualName = ':' + valueClassName + 'ClassIndividual'.n3; fragment n3.Triple individual = ' > a >.'.rn3; bind individualName on individual with individualName; bind className on individual with valueClassName; bind ->valueSlot on ->ontology with individualName; bind ontology.subFragment with 'statements[-1]'.fcp; extend ->ontology with individual; }

5th December 2006Jakob Henriksson, REWERSE WG I3: Composition and Typing 32 Conclusions Grey-box composition interesting for the Semantic Web Based on: –Language independent primitive composers Extended with: –User-definable targeted complex composition operators Flexible framework to invent and experiment with composition ideas Examples: –Query languages (Xcerpt module system) –Ontology languages (delaying design decisions) Implementation (E-CoMoGen) integrates into Eclipse

5th December 2006Jakob Henriksson, REWERSE WG I3: Composition and Typing 33 The end Thank you for your attention! Now: E-CoMoGen Demo