+ All Categories
Home > Documents > Interoperability of Distributed Component Systems

Interoperability of Distributed Component Systems

Date post: 08-Jan-2016
Category:
Upload: mikasi
View: 44 times
Download: 8 times
Share this document with a friend
Description:
Interoperability of Distributed Component Systems. Midterm Presentation CSE333 – Distributed Component Systems Professor Steven Demurjian. Research Team Bryan Bentz Jason Hayden Upsorn Praphamontripong Paul Vandal. As of Mid-Term Review :. Project Direction. - PowerPoint PPT Presentation
Popular Tags:
62
Interoperability of Interoperability of Distributed Component Distributed Component Systems Systems Research Team Bryan Bentz Jason Hayden Upsorn Praphamontripong Upsorn Praphamontripong Paul Vandal Paul Vandal Midterm Presentation Midterm Presentation CSE333 – Distributed Component Systems CSE333 – Distributed Component Systems Professor Steven Demurjian Professor Steven Demurjian
Transcript

Interoperability of Interoperability of Distributed Component Distributed Component

SystemsSystems

Research TeamBryan Bentz

Jason Hayden

Upsorn PraphamontripongUpsorn Praphamontripong

Paul VandalPaul Vandal

Midterm PresentationMidterm Presentation

CSE333 – Distributed Component SystemsCSE333 – Distributed Component Systems

Professor Steven DemurjianProfessor Steven Demurjian

As of Mid-Term ReviewAs of Mid-Term Review::

We had examined different We had examined different applications of XML:applications of XML:

– Software component re-useSoftware component re-use– Open Office documentsOpen Office documents– Common Data WarehouseCommon Data Warehouse– Semantic WebSemantic Web

The issue was: What do these The issue was: What do these have to do with each other?have to do with each other?

Project DirectionProject Direction

Endemic XML ProblemEndemic XML Problem

XML is like HTML, but users may XML is like HTML, but users may define tags:define tags:

<Title><Title>Example DocumentExample Document</Title></Title>

<Created><Created>December 1, 2005December 1, 2005</Created></Created>

But this second line could as easily But this second line could as easily be:be:

<CreationDate><CreationDate>12/1/200512/1/2005</CreationDate></CreationDate>

All XML representations share this All XML representations share this problem: in what contexts does the problem: in what contexts does the metadata make sense?metadata make sense?

Metadata

Data: code, text, databases, services

In a single context, this usually isn’t a problem (though systems do grow and change);

Metadata

Data: code, text, databases, services

All XML representations share this All XML representations share this problem: in what contexts does the problem: in what contexts does the metadata make sense?metadata make sense?

Metadata

Data: code, text, databases, services

For unanticipated interactions between systems, this requires new mechanisms.

Metadata

New web service

?

Project DirectionProject Direction

While a universal XML problem, this While a universal XML problem, this consistency issue is central to the consistency issue is central to the Semantic Web;Semantic Web;

We chose to use Semantic Web ideas as We chose to use Semantic Web ideas as a unifying theme in what we were doing. a unifying theme in what we were doing.

We have been looking at different areas, We have been looking at different areas, but this problem of XML and but this problem of XML and interoperability is the common thread.interoperability is the common thread.

Semantic Web: The Common Semantic Web: The Common

ThreadThread

Topics to cover:Topics to cover:

– RDF: Resource Description RDF: Resource Description FrameworkFramework

– Practical RDFPractical RDF– Our Semantic Web server Our Semantic Web server

experimentsexperiments

RResource esource DDescription escription FFrameworkramework

RDF originated with the work of R.V. Guha at RDF originated with the work of R.V. Guha at Apple, on what was called the Meta Content Apple, on what was called the Meta Content Framework.Framework.

RDF is a major component of the Semantic RDF is a major component of the Semantic Web;Web;

It is used to describe resources and their It is used to describe resources and their properties;properties;

It has its own XML representation;It has its own XML representation; It consists of triples:It consists of triples:

Why triples?

SubjectSubject PredicatePredicate ObjectObject

Semantic Network Semantic Network RepresentationRepresentation

• A very general and powerful representation;

• Invented by Richard Richens of Cambridge Language Research Unit in 1956 for natural language work/machine translation; widely used since then.

• Strongly influenced the ‘link’ concept in HTML.

RDF Triples Encode a Semantic RDF Triples Encode a Semantic NetworkNetwork

Practical RDFPractical RDF

Want to use common set of objects and Want to use common set of objects and relationships – namespaces, repositories – relationships – namespaces, repositories – when possible.when possible.

An alternative approach is to provide An alternative approach is to provide translations (e.g. synonyms) to map translations (e.g. synonyms) to map homegrown properties to universally homegrown properties to universally accepted properties.accepted properties.

One example of universal components: One example of universal components: – Dublin Core.Dublin Core.

Practical RDF: The Dublin Practical RDF: The Dublin CoreCoreDublin Core Metadata Element Set:Dublin Core Metadata Element Set:

1. Title2. Creator3. Subject4. Description5. Publisher6. Contributor7. Date8. Type

9. Format10. Identifier11. Source12. Language13. Relation14. Coverage15. Rights

(Properties may be further qualified.) Terms are described in detail at http://dublincore.org/documents/dcmi-terms/

RDF/XMLRDF/XML

<?xml version="1.0"?> <?xml version="1.0"?>

<!DOCTYPE rdf:RDF PUBLIC "-//DUBLIN CORE//DCMES DTD <!DOCTYPE rdf:RDF PUBLIC "-//DUBLIN CORE//DCMES DTD 2002/07/31//EN" 2002/07/31//EN" "http://dublincore.org/documents/2002/07/31/dcmes-xml/dcme"http://dublincore.org/documents/2002/07/31/dcmes-xml/dcmes-xml-dtd.dtd"> s-xml-dtd.dtd">

<rdf:RDF xmlns:<rdf:RDF xmlns:rdfrdf="http://www.w3.org/1999/02/22-rdf-="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:syntax-ns#" xmlns:dcdc="http://purl.org/dc/elements/1.1/"> ="http://purl.org/dc/elements/1.1/">

<rdf:Description rdf:about="http://example.org/"> <rdf:Description rdf:about="http://example.org/"> <dc:title>My Home Page</dc:title> </rdf:Description> <dc:title>My Home Page</dc:title> </rdf:Description>

How to read this:XML declarationReferencing the XML DTDDeclaring the use of RDFMarking the title.

Building A Semantic Web ServerBuilding A Semantic Web Server

We used We used RDF GatewayRDF Gateway, by Intellidimension , by Intellidimension ((www.intellidimension.comwww.intellidimension.com), a platform for ), a platform for development and deployment of Semantic development and deployment of Semantic Web applications.Web applications.

We chose to represent software components We chose to represent software components and associated documentation, and the and associated documentation, and the relationships between these elements.relationships between these elements.

We built RDF triples describing these We built RDF triples describing these relationships, and exercised them using relationships, and exercised them using inference rules.inference rules.

RDF Gateway:RDF Gateway:

Components Components Represented:Represented:

FFT code in C++FFT code in C++ FIR filter code in CFIR filter code in C Hidden Markov Model code in CHidden Markov Model code in C Wavelet implementation in JavaWavelet implementation in Java

Each component had one or more source code files and/or documentation files; e.g. for the HMM, we had: hmm.c The basic code file

hmm.h The header filehmmrand.c Platform-independent random nums.hmmutils.c File I/O, matrix codehmmtut.ps Postscript documentation

Semantic Network FragmentSemantic Network Fragment

FFT.c++Language: C

Language: C++

Language: Java

Hmmutils.c

hmm.c

Wavelet.java

filter.c

Hmmrand.c

Hmmtut.ps

FFT.doc

hmm.h

sysutils.h

FFT.h

Fast Fourier Transform

Hidden Markov Models

FIR filters

Wavelets

Example RDF triples:Example RDF triples:

““source/hmm.c”source/hmm.c” requiresrequires “source/hmmutils.c”“source/hmmutils.c”“source/hmmtut.ps”“source/hmmtut.ps” documents documents “source/hmm.c”“source/hmm.c”“source/hmmutils.c”“source/hmmutils.c” requires requires “sysutils.h”“sysutils.h”……

• RDF triples were instantiated using the RDFQL interface in RDF Gateway;

• There were no global software-engineering-related predicates we could draw on.

Using the ‘Semantic’ Part Using the ‘Semantic’ Part of the Semantic Webof the Semantic Web

Inference Rule Example:Inference Rule Example:INFER {INFER {?A?A 'requires' 'requires' ?C?C} }

FROM {FROM {?A?A 'requires' 'requires' ?B?B} }

AND {AND {?B?B 'requires' 'requires' ?C?C};};

Rule is recursively applied to identify all dependencies for a given file. Result when passed hmm.c is:

source/hmmutils.csource/hmmrand.csource/hmm.hsource/sysutils.h

Further InferenceFurther Inference

A similar rule returns appropriate A similar rule returns appropriate documentation for any of the files documentation for any of the files returned.returned.

The inference engine is quite powerful, The inference engine is quite powerful, and may be used to examine database and may be used to examine database schemas, rewrite metadata, or reformat schemas, rewrite metadata, or reformat data.data.

We used the output of inferences to write We used the output of inferences to write HTML on the fly – the inference engine HTML on the fly – the inference engine became a window into the Semantic Web.became a window into the Semantic Web.

Review So FarReview So Far

We chose the problem of disparate We chose the problem of disparate XML as the unifying theme;XML as the unifying theme;

Semantic Web technologies exist Semantic Web technologies exist specifically to address this problem;specifically to address this problem;

This is the unifying thread in our This is the unifying thread in our different research areas.different research areas.

OpenDocument IntroductionOpenDocument Introduction

What is it?What is it? Why is it important?Why is it important? Who created it?Who created it? How is XML used to contain How is XML used to contain

information?information? Testing the portability of documentsTesting the portability of documents OpenDocument and RDFOpenDocument and RDF ConclusionsConclusions

What is OpenDocument?What is OpenDocument?

Open source document file format for Open source document file format for saving and exchanging documents saving and exchanging documents across multiple editors.across multiple editors.

Editors include: OpenOffice, StarOffice, Editors include: OpenOffice, StarOffice, KOffice, IBM Workplace, and Abiword.KOffice, IBM Workplace, and Abiword.

All information is stored in XML filesAll information is stored in XML files Constantly evolving to incorporate Constantly evolving to incorporate

newest ideasnewest ideas Currently trying to become ISO Currently trying to become ISO

certifiedcertified

Why is it important?Why is it important?

Allows the use of multiple document editorsAllows the use of multiple document editors Stored in XML compared to .doc binaries Stored in XML compared to .doc binaries

allows easy access to data.allows easy access to data.– Example pre MS Word 95 unreadable in Office 2003Example pre MS Word 95 unreadable in Office 2003

European Union requiring document formats European Union requiring document formats to be approved by standards body. to be approved by standards body. – Microsoft – No Microsoft – No – OpenDocument - being reviewedOpenDocument - being reviewed

Massachusetts recommending all state Massachusetts recommending all state documents being in non proprietary format. documents being in non proprietary format. Debate ongoing.Debate ongoing.

Who created it?Who created it?

Developed by OASIS consortiumDeveloped by OASIS consortium OASIS is composed of multiple large OASIS is composed of multiple large

vendors including: Adobe, Corel, IBM, vendors including: Adobe, Corel, IBM, KDE, and SunKDE, and Sun

Based off old OpenOffice file format Based off old OpenOffice file format but modified per input from different but modified per input from different vendors vendors

How is XML used to Store How is XML used to Store information?information?

OpenDocument file is a compressed archive file OpenDocument file is a compressed archive file containing the following items:containing the following items:– Meta.xmlMeta.xml– Settings.xmlSettings.xml– Styles.xmlStyles.xml– Content.xmlContent.xml– Manifest.xmlManifest.xml– Pictures folderPictures folder– Thumbnail.pngThumbnail.png– Configuration2 folderConfiguration2 folder

Only 2 of the above files are needed to create a valid Only 2 of the above files are needed to create a valid OpenDocument fileOpenDocument file

XML files contain a combination of Dublin Core and XML files contain a combination of Dublin Core and custom elementscustom elements

Meta.xmlMeta.xml

Used to store information in XML describing the Used to store information in XML describing the document. document.

Some information stored is title, creation date, and Some information stored is title, creation date, and creatorcreator

Settings.xmlSettings.xml

Saves settings and options used by the editor that last Saves settings and options used by the editor that last saved the document.saved the document.

Application independent and not requiredApplication independent and not required Examples would be curser location and page when file Examples would be curser location and page when file

saved saved

Styles.xmlStyles.xml

Stores information about the format and layout of text that Stores information about the format and layout of text that are used within the document.are used within the document.

Styles can be applied to anything ranging from document to Styles can be applied to anything ranging from document to character.character.

Information about styles can also be stored in content.xml.Information about styles can also be stored in content.xml.

Content.xmlContent.xml

One of the 2 required filesOne of the 2 required files Contains all the content that is entered in a document.Contains all the content that is entered in a document. Can store styles instead of styles.xml but not Can store styles instead of styles.xml but not

encouraged.encouraged.

Other ComponentsOther Components

Pictures folderPictures folder – stores all images used – stores all images used within document. .bmp are convertedwithin document. .bmp are converted

Thumbnail.pngThumbnail.png – thumbnail picture of – thumbnail picture of entire document. Print preview.entire document. Print preview.

Configurations2Configurations2 – not currently used. – not currently used. Planned for future usePlanned for future use

Manifest.xmManifest.xml – 2l – 2ndnd required file. Used required file. Used by the document editor to know which by the document editor to know which XML files are created and where they are XML files are created and where they are located. located.

Testing PortabilityTesting Portability

The ability to create and edit office The ability to create and edit office documents in variety of editors is tested. documents in variety of editors is tested.

Four different documents (2 text and 2 Four different documents (2 text and 2 spreadsheet) are created in OpenOffice 2.0 spreadsheet) are created in OpenOffice 2.0 and tested for portability with StarOffice 8.0 and tested for portability with StarOffice 8.0 and Koffice 1.4.2and Koffice 1.4.2

Text and spreadsheet used because received Text and spreadsheet used because received most attention and most used in business.most attention and most used in business.

OpenOffice, StarOffice, and KOffice are the OpenOffice, StarOffice, and KOffice are the largest vendors supporting OpenDocument. largest vendors supporting OpenDocument.

Simple Text DocumentSimple Text Document

Text document that says “Open Document test” in Text document that says “Open Document test” in variety of fonts and styles. variety of fonts and styles.

The file opened correctly in all three applications.The file opened correctly in all three applications.

Advanced Text DocumentAdvanced Text Document

Advanced text document that has a table, Advanced text document that has a table, image, shading, and variety of fonts, sizes, and image, shading, and variety of fonts, sizes, and justifications.justifications.

Opened correctly in all three applicationsOpened correctly in all three applications

Simple Spreadsheet Simple Spreadsheet DocumentDocument

Simple spreadsheet that performs addition, Simple spreadsheet that performs addition, subtraction, multiplication, and division.subtraction, multiplication, and division.

Opened correctly in all three applicationsOpened correctly in all three applications

Advanced Spreadsheet Advanced Spreadsheet DocumentDocument

The complex equation is entered:The complex equation is entered:=(SUM(A1;A3;AVERAGE(A1:A5)+LOG(A1+10;10)-=(SUM(A1;A3;AVERAGE(A1:A5)+LOG(A1+10;10)-SQRT(A4*SIN(0.75)+MOD(A3;A4))) + (POWER(3;3)/LN(A4)))SQRT(A4*SIN(0.75)+MOD(A3;A4))) + (POWER(3;3)/LN(A4)))

Opened correctly in OpenOffice and StarOffice Opened correctly in OpenOffice and StarOffice KOffice had ERR:511 in the cell where the equation appearsKOffice had ERR:511 in the cell where the equation appears

Advanced Spreadsheet Document(2)Advanced Spreadsheet Document(2)

Problems occur because OpenDocument Problems occur because OpenDocument does not define a standard for functions, does not define a standard for functions, only formatting.only formatting.

Currently each application defines their Currently each application defines their own standard for function formatting.own standard for function formatting.

New research into extending New research into extending OpenDocument to developing a standard OpenDocument to developing a standard to exchange formulas in spreadsheet to exchange formulas in spreadsheet called OpenFormula proposed by David called OpenFormula proposed by David Wheeler. Currently in draft status.Wheeler. Currently in draft status.

OpenDocument and RDFOpenDocument and RDF

With the use of RDF, documents can be With the use of RDF, documents can be easily found by subject, author, creation easily found by subject, author, creation date, or keywords.date, or keywords.

Information can be retrieved through Information can be retrieved through accessing the Dublin Core elements in the accessing the Dublin Core elements in the meta.xml file.meta.xml file.

Information sharing and searching are easily Information sharing and searching are easily achieved without requiring user input during achieved without requiring user input during insertion into the databaseinsertion into the database

An ongoing topic of research in ways to An ongoing topic of research in ways to efficiently parse the XML files for information.efficiently parse the XML files for information.

OpenDocument Conclusions

The documents are not yet universally The documents are not yet universally portable but work is continuing to portable but work is continuing to improve this ability.improve this ability.

Information stored in XML results in Information stored in XML results in many benefits over a binary file.many benefits over a binary file.

With the use of RDF, an exciting future With the use of RDF, an exciting future is ahead with the ability to find is ahead with the ability to find documents extremely efficiently and documents extremely efficiently and easily.easily.

Software Component Retrieval: Software Component Retrieval: Basic Basic

ArchitectureArchitecture

LibraryComponent

Specification

Component Analyzer

Lexical Analyzer Syntactic Analyzer

Semantic Analyzer

QueryComponent

Specification

Component Analyzer

Lexical Analyzer Syntactic Analyzer

Semantic Analyzer

Extracted librarycomponent specification

MatchMaker

Extracted querycomponent specification

Retrievedcomponents

<component> <cname> component_name </cname> <method> <mname> method_name </mname> <paramNo> no_of_parameter </paramNo> <param> <pname> parameter_name </pname> <ptype> type_of_parameter </ptype> <psize> size_of_parameter </psize> </param> … <precond> <left> left_operand1 </left> <operator> operator1 </operator> <right> right_operand1 </right> </precond>

<precond> <left> left_operand2 </left> <operator> operator2 </operator> <right> right_operand2 </right> </precond> … <postcond> <left> left_operand1 </left> <operator> operator1 </operator> <right> right_operand1 </right> </postcond> <postcond> <left> left_operand2 </left> <operator> operator2 </operator> <right> right_operand2 </right> </postcond> … <return> return_type </return> </method> …</component>

<postcond> <subcond> <left> left_operand1 </left> <operator> operator1 </operator> <right> right_operand1 </right> </subcond> <and> <subcond> <left> left_operand2 </left> <operator> operator2 </operator> <right> right_operand2 </right> </subcond> </and> <and> <subcond> <left> left_operand3 </left> <operator> operator3 </operator> <right> right_operand3 </right> </subcond> </and> … </postcond>

A component – method with Boolean conditions

A component – method with a set of individual conditions

XML-based software component specificationXML-based software component specification

XML-based software component specificationXML-based software component specification

<postcond> <subcond> <left> left_operand1 </left> <operator> operator1 </operator> <right> right_operand1 </right> <and> <subcond> <left> left_operand2 </left> <operator> operator2 </operator> <right> right_operand2 </right> <and> <subcond> <left> left_operand3 </left> <operator> operator3 </operator> <right> right_operand3 </right> </subcond> … </and> </subcond> </and> </subcond></postcond>

A component – method with multi-level conditions (Boolean join)

A component – method with multi-level conditions

<postcond> <left> <subcond> <left> left_operand1 </left> <operator> operator1 </operator> <right> right_operand1 </right> </subcond> </left> <operator> operator2 </operator> <right> right_operand2 </right></postcond>

<component> <cname> component_name1 </cname> …</component><component> <cname> component_name2 </cname> <isa> component_name1 </isa> <method> <mname> method_name </mname> <paramNo> no_of_parameter </paramNo> <param> <pname> parameter_name </pname> <ptype> type_of_parameter </ptype> <psize> size_of_parameter </psize> </param> … <precond> … </precond> <postcond> … </postcond> <return> return_type </return> </method> …</component>

An “isa” component

Exact MatchExact MatchMatchExactMatchExact((QQ, , LL) = () = (QpreQpre LpreLpre)) ( (QpostQpost LpostLpost) )

((QinQin LinLin) ) ( (QoutQout LoutLout) )

Generalization MatchGeneralization MatchMatchGen(Q, L) = (Lpre MatchGen(Q, L) = (Lpre Qpre Qpre Lpost Lpost Qpost) Qpost)

Specialization MatchSpecialization MatchMatchSpecMatchSpec((QQ, , LL) = () = (QpreQpre LpreLpre QpostQpost LpostLpost))

Partial MatchPartial MatchMatchPartMatchPart((QQ, , LL) = () = (MatchGenMatchGen((QQ, , LL) ) MatchSpecMatchSpec((QQ, , LL)) ))

((L’inL’in Lin Lin ((L’in L’in = = QinQin) ) L’outL’out Lout Lout ((L’out L’out = = QoutQout))))

Reference MatchReference MatchMatchRefMatchRef((QQ, , LL) = () = (MatchExactMatchExact((QQ, , ll) ) MatchPartialMatchPartial((QQ, , ll)) ))

((MatchExactMatchExact((qq, , LL) ) MatchPartialMatchPartial((qq, , LL))))

Software Component Retrieval: Software Component Retrieval: Determine MatchingDetermine Matching

Q and q denote queriesL and l denote existing components in the library/repository

Software Component Retrieval: Compute SimilaritySoftware Component Retrieval: Compute Similarity

Component Component SimilaritySimilarity

Method SimilarityMethod Similarity

Pre-condition Pre-condition SimilaritySimilarity

Post-condition Post-condition SimilaritySimilarity

Input SimilarityInput Similarity

Out SimilarityOut Similarity

Software Component Retrieval: Software Component Retrieval: IllustrationIllustration

Repository/Library: lib1.xmlQuery: q2.xmlWeight: input: 10 output: 10 precondition: 30 postcondition: 50

<query> <component> <cname> q2 </cname> <method> <mname> m2 </mname> <paramNo> 2 </paramNo> <param> <pname> k </pname> <ptype> real </ptype> </param> <param> <pname> j </pname> <ptype> real </ptype> </param> <precond> <left> j </left> <operator> greater_or_equal </operator> <right> 0 </right> </precond> <postcond> <left> k </left> <operator> greater_or_equal </operator> <right> 0 </right> </postcond> <postcond> <left> <subcond> <left> k </left> <operator> power </operator> <right> 2 </right> </subcond> </left> <operator> equal </operator> <right> j </right> </postcond> <return> k </return> </method> </component></query>

Display Similarity TableFormat: component name, method name, Sim-Post, Sim-Pre, Sim-Param, Sim-Return, method-sim, match_type, ref_match=========================================================q2, math1, sqr, 50.0, 100.0, 100.0, 100.0, 75.0, generalizationq2, math2, sqr2, 100.0, 100.0, 100.0, 100.0, 100.0, exactq2, math3, sqr, 0.0, 100.0, 100.0, 100.0, 50.0, partial

Component name: q2

Parameter ----> Method: m2 k Method: m2 j

Pre condition ----> Method: m2 weight =100.00% j greater_or_equal 0

Post condition ----> Method: m2 weight =50.00% k greater_or_equal 0 Method: m2 weight =50.00% ( k power 2 ) equal j

Return value ----> Method: m2 k

Software Component Retrieval: Software Component Retrieval: IllustrationIllustration

Repository/Library: lib1.xmlQuery: q_isa_1.xmlWeight: input: 10 output: 10 precondition: 35 postcondition: 45

Component name: q_math1

Parameter ----> Method: q_sqr x Method: q_sqr r

Pre condition ----> Method: q_sqr weight =100.00% x greater_or_equal 0

Post condition ----> Method: q_sqr weight =100.00% ( r power 2 ) equal x

Return value ----> Method: q_sqr r

Component name: isa_test1

Parameter ----> Method: find_max param1 Method: find_max param2

Pre condition ----> Method: find_max weight =50.00% param1 greater 0 Method: find_max weight =50.00% param2 greater 0

Post condition ----> Method: find_max weight =100.00% param1 greater param2

Return value ----> Method: find_max param1

Display Similarity TableFormat: component name, method name, Sim-Post, Sim-Pre, Sim-Param, Sim-Return, method-sim, match_type, ref_match================================================================q_math1, math1, sqr, 100.0, 100.0, 100.0, 100.0, 100.0, exactq_math1, math2, sqr2, 100.0, 100.0, 100.0, 100.0, 100.0, specializationq_math1, math3, sqr, 0.0, 100.0, 100.0, 100.0, 55.0, partialisa_test1, list_operation, add_list, 0.0, 0.0, 50.0, 0.0, 5.0, partialisa_test1, simple_array, add_to_array, 0.0, 0.0, 100.0, 0.0, 10.0, partialisa_test1, simple_array, find_max, 100.0, 0.0, 100.0, 100.0, 65.0, partialisa_test1, stack_operation, pop, 0.0, 50.0, 50.0, 0.0, 22.5, partialisa_test1, stack_operation, push, 0.0, 0.0, 100.0, 0.0, 10.0, partialisa_test1, graphic_obj, pop, 0.0, 50.0, 0.0, 0.0, 17.5, partialisa_test1, math1, sqr, 100.0, 100.0, 100.0, 100.0, 100.0, generalization-referenceisa_test1, math2, sqr2, 100.0, 100.0, 100.0, 100.0, 100.0, generalization-reference

M1

M2

Mn

Matchmakers

… …

Que

ry In

terf

ace P

ublish Interface

Component DescriptionRepository

Licensing server

Component Integrators Component Vendors

(Varadarajan, et. al. “Componentxchange: An E-Exchange for Software Components”, WWW’10, 2001)

Software Component Retrieval: IssuesSoftware Component Retrieval: Issues

Different tags refer to the same elementDifferent tags refer to the same element<input-type> string </input-type> and<input-type> string </input-type> and<datatype> string </datatype><datatype> string </datatype>

Different terms refer to the same contentDifferent terms refer to the same content– For an array’s operationsFor an array’s operations: :

<operator> add </operator> and<operator> add </operator> and<operator> insert </operator> <operator> insert </operator>

RDF:RDF: INFER {?s ?B ?o} FROM {?A is-a-synonym-of ?B} AND {?s ?A ?o};INFER {?s ?B ?o} FROM {?A is-a-synonym-of ?B} AND {?s ?A ?o};

Integration of software component specificationsIntegration of software component specifications – Same standards of specificationsSame standards of specifications– different standards of specificationsdifferent standards of specifications

Software Component Retrieval: RDFSoftware Component Retrieval: RDF

input-type datatype(relation)

add insert(relation)

C1 C2(relation)

<component> <cname> stack_operation </cname> <method> <mname> push </mname>

… <precond> <left> n </left> <operator> greater_equal </operator> <right> 0 </right> </precond> <precond> <left> S </left> <operator> not </operator> <right> full </right> </precond> <postcond> <left> x </left> <operator> in </operator> <right> S </right> </postcond> <postcond> <left> x </left> <operator> top </operator> <right> S </right> </postcond> <postcond> <left> n </left> <operator> increase </operator> <right> 1 </right> </postcond> <return> none </return> </method> <method> <mname> pop </mname>

… <precond> <left> n </left> <operator> greater </operator> <right> 0 </right> </precond> <postcond> <left> n </left> <operator> decrease </operator> <right> 1 </right> </postcond> <return> peak </return> </method> </component>

<component> <cname> simple_array </cname> <method> <mname> find_max </mname>

…<precond>

<subcond> <left> param2 </left> <operator> in </operator> <right> temp_array </right> <and> <subcond> <left> param2 </left> <operator> greater </operator> <right> 0 </right> </subcond> </and> </subcond> </precond> <postcond> <left> param1 </left> <operator> greater </operator> <right> param2 </right> </postcond> <return> param1 </return> </method> <method> <mname> add </mname>

…<precond>

<left> x </left> <operator> not_in </operator> <right> A </right> <and> <subcond> <left> A </left> <operator> not </operator> <right> full </right> </subcond> </and> </precond> <postcond> <left> x </left> <operator> in </operator> <right> A </right> </postcond> <return> none </return> </method> </component>

Integration of software component specifications described the same standardsIntegration of software component specifications described the same standards

<component> <cname> simple_array </cname> <method> <mname> find_max </mname>

…<precond>

<subcond> <left> param2 </left> <operator> in </operator> <right> temp_array </right> <and> <subcond> <left> param2 </left> <operator> greater </operator> <right> 0 </right> </subcond> </and> </subcond> </precond> <postcond> <left> param1 </left> <operator> greater </operator> <right> param2 </right> </postcond> <return> param1 </return> </method> <method> <mname> add </mname>

…<precond>

<left> x </left> <operator> not_in </operator> <right> A </right> <and> <subcond> <left> A </left> <operator> not </operator> <right> full </right> </subcond> </and> </precond> <postcond> <left> x </left> <operator> in </operator> <right> A </right> </postcond> <return> none </return> </method> </component>

Integration of software componentIntegration of software component

specifications described with specifications described with

different standardsdifferent standards

Future WorkFuture Work

Generate test cases: RDF dealing with Generate test cases: RDF dealing with – Different tags refer to the same elementDifferent tags refer to the same element

– Different terms refer to the same contentDifferent terms refer to the same content

– Integration of software component Integration of software component specifications specifications

Domain-specificDomain-specific

Interpretation on the retrieval toolInterpretation on the retrieval tool

Authority and privacyAuthority and privacy

Data Warehouse Data Warehouse IntroductionIntroduction

Common Metamodel for Data WarehousesCommon Metamodel for Data Warehouses Data Warehouse SearchesData Warehouse Searches

– Full text SearchFull text Search– Metadata SearchMetadata Search– Global Metadata SearchGlobal Metadata Search– RDF Repository SearchRDF Repository Search

RDF Repository Search ExampleRDF Repository Search Example

Full Text SearchFull Text Search

Data

Search Tool

Data Data

Data

Warehouse

Metadata SearchMetadata Search

Metadata

Warehouse Tool

Search Tool

Metadata Metadata

Warehouse Tool

Warehouse Tool

Common Warehouse Common Warehouse MetamodelMetamodel

Metamodel standard for all data Metamodel standard for all data warehouse toolswarehouse tools

Designed for the data warehouse Designed for the data warehouse domaindomain

Allows extensibility of metadata from Allows extensibility of metadata from standard modelstandard model

Creates a global metadata solutionCreates a global metadata solution

Global Metadata SearchGlobal Metadata Search

CWM

Repository

Warehouse Tool

Search

Tool Warehouse Tool

Warehouse Tool

Warehouse Tool

Warehouse Tool

Glue CWM to RDFGlue CWM to RDF

CWM metadata mapped to RDF CWM metadata mapped to RDF metadatametadata– RDF RepositoryRDF Repository

Exposes user to a richer data setExposes user to a richer data set– RDF metadata are created as objectsRDF metadata are created as objects– Stored in a table as triplesStored in a table as triples– Inferences are created between objects Inferences are created between objects

Only as good as the tagsOnly as good as the tags– Rely on quality of taggingRely on quality of tagging– High Quality most likely found in corporate High Quality most likely found in corporate

officeoffice

Ontology Mapping Ontology Mapping SearchSearch

CWM

Repository

RDF

Repository

Search Tool Warehouse

Tool

Warehouse Tool

Warehouse Tool

Warehouse Tool

Homeland SecurityHomeland Security

Disjoint CIA and FBI CWM Disjoint CIA and FBI CWM repositoriesrepositories– Map these to one RDF repositoryMap these to one RDF repository

FBI

CWM

RepositoryRDF

Repository

Query Tool CIA

CWM

Repository

Persons of Interest Persons of Interest TrackingTracking

Track Persons of InterestTrack Persons of Interest– Insertion of dataInsertion of data

A spy inserts all recorded data on A spy inserts all recorded data on suspectsuspect

These are mapped to an RDF repository These are mapped to an RDF repository Inferences created between suspects Inferences created between suspects

and actionsand actions

– Raise flags for suspicious activitiesRaise flags for suspicious activities Can be a combination certain activitiesCan be a combination certain activities

Suspected TerroristSuspected Terrorist

Search Suspected Terrorist using RDF Search Suspected Terrorist using RDF repositoryrepository– Suspicious ActivitiesSuspicious Activities

One way plane ticketsOne way plane tickets Large exchanges of money at bankLarge exchanges of money at bank

– Link activities Link activities Terrorist X uses bankTerrorist X uses bank

– Has suspected terrorists Y and Z used the Has suspected terrorists Y and Z used the same bank recently?same bank recently?

Questions?Questions?


Recommended