Impedance Mismatch 2.0

L
Lars Marius GarsholTechnology developer
Impedance mismatch 2.0,[object Object],BouvetOne 2010-01-28,[object Object],Lars Marius Garshol, <larsga@bouvet.no>,[object Object]
Impedance mismatch 1.0,[object Object],Java objects,[object Object],Tables,[object Object],?,[object Object],Objects and relations have different structures,[object Object],causes lots of extra development work,[object Object],a well-understood problem today,[object Object]
Impedance mismatch 2.0,[object Object],?,[object Object],Objects and semantic technologies have the same issue,[object Object],this is not well understood, however...,[object Object]
And the solution is...?,[object Object],I don’t suggest that I have it,[object Object],what I am suggesting is that we need to think more seriously about this problem,[object Object],This talk sketches some approaches,[object Object],I would be very interested in feedback on them,[object Object]
Some important concerns,[object Object],Whipuptitude,[object Object],how easy it is to get something up and running,[object Object],Manipulexity,[object Object],how complicated data/interface you can handle,[object Object],Knowledge of TMs,[object Object],is it possible to shield some developers from TMs?,[object Object],Testability,[object Object],how easy is it to do automated testing?,[object Object],Flexibility,[object Object],how hard is it to change the application?,[object Object]
The one-layer approach,[object Object],JSP,[object Object],JSP,[object Object],JSP,[object Object],Write lots of JSPs,[object Object],put your queries in the JSPs,[object Object],off you go,[object Object],Messy, but effective,[object Object],high whipuptitude, but brittle,[object Object],limited manipulexity,[object Object],usually lots of boilerplate code,[object Object],Difficult to test,[object Object]
Write a domain model,[object Object],JSP,[object Object],Domain model,[object Object],JSP,[object Object],JSP,[object Object],Write a domain model,[object Object],put as much business logic as possible inside,[object Object],hide all Topic Maps queries in it,[object Object],then build JSPs as a thin layer on top,[object Object],Scales to higher manipulexity,[object Object],much easier to test,[object Object],public class Person {,[object Object],  public String getName();,[object Object],  public String getEmail();,[object Object],  public Date getDateOfBirth();,[object Object],  // ...,[object Object],},[object Object]
But...,[object Object],Very low whipuptitude,[object Object],takes a while to figure out how to approach writing this code,[object Object],lots of scaffolding to do before you get started,[object Object],Wasn’t one of the benefits of TMs flexibility?,[object Object],now any ontology change has to be followed by an update to the domain model,[object Object],this is slow and a lot of work,[object Object],compared to an RDBMS and an OR-mapper, is this really any faster?,[object Object]
Generate a domain model,[object Object],JSP,[object Object],Generated domain model,[object Object],JSP,[object Object],Custom code,[object Object],JSP,[object Object],Use a tool that generates the model,[object Object],obviously, it must allow custom extensions,[object Object],saves effort by avoiding most of the routine work,[object Object],business logic still has to be written manually,[object Object],Scales to even higher manipulexity,[object Object],whipuptitude no longer quite so bad,[object Object],http://www.networkedplanet.com/ontopic/2007/07/topic_map_objects_research_pap.html,[object Object]
To make this work...,[object Object],Use schema + annotations as input,[object Object],also conventions instead of config, where possible,[object Object],allow ontology annotations to provide additional generated business logic, where possible,[object Object],(.NET allows partial classes, avoiding subclassing),[object Object],Generated code not to be edited,[object Object],all custom logic in separate subclasses,[object Object],Might be able to use tolog rules to implement some of the business logic without Java,[object Object]
A portlet approach,[object Object],JSP,[object Object],TreePortlet,[object Object],JSP,[object Object],RelatedTopics,[object Object],JSP,[object Object],TopicList,[object Object],Use generic components for display,[object Object],at least as far as possible,[object Object],these rely on configuration and ontology annotation,[object Object],note: components reflect interface, not the domain,[object Object],Enormous whipuptitude,[object Object],manipulexity probably limited,[object Object]
Ontology changes,[object Object],All applications have some ontology expectations,[object Object],however, using a generic approach these can be minimized,[object Object],sometimes to the point where no code changes are required for certain ontology changes,[object Object],However, this requires the use of generic components,[object Object],usually also requires some forethought,[object Object],with a traditional domain model this is not really possible,[object Object]
Evaluation,[object Object],whipuptitude,[object Object],Generic,[object Object],portlets,[object Object],One-layer,[object Object],approach,[object Object],Generated domain model,[object Object],Self-written domain model,[object Object],manipulexity,[object Object]
But what do you think?,[object Object],Would any of these approaches really solve the problem?,[object Object],Do we need more?,[object Object],Do we need something entirely different?,[object Object]
1 von 14

Recomendados

Whats Up With Ontopoly? von
Whats Up With Ontopoly?Whats Up With Ontopoly?
Whats Up With Ontopoly?Geir Ove Grønmo
700 views35 Folien
Web Design 1: Introductions von
Web Design 1: IntroductionsWeb Design 1: Introductions
Web Design 1: IntroductionsShawn Calvert
1.6K views39 Folien
Aspect-Oriented Programming for PHP von
Aspect-Oriented Programming for PHPAspect-Oriented Programming for PHP
Aspect-Oriented Programming for PHPWilliam Candillon
6.6K views36 Folien
Week1 xml von
Week1 xmlWeek1 xml
Week1 xmlhapy
911 views10 Folien
Web Front End von
Web Front EndWeb Front End
Web Front EndMohamed Essam
71 views25 Folien
Code This, Not That: 10 Do's and Don'ts For Learning HTML von
Code This, Not That: 10 Do's and Don'ts For Learning HTMLCode This, Not That: 10 Do's and Don'ts For Learning HTML
Code This, Not That: 10 Do's and Don'ts For Learning HTMLHubSpot
53K views57 Folien

Más contenido relacionado

Was ist angesagt?

HTML Start Up - Introduction to HTML von
HTML Start Up - Introduction to HTMLHTML Start Up - Introduction to HTML
HTML Start Up - Introduction to HTMLGrayzon Gonzales, LPT
551 views20 Folien
Html basics von
Html basicsHtml basics
Html basicsChristoph Trappe
105 views24 Folien
DSL in test automation von
DSL in test automationDSL in test automation
DSL in test automationtest test
6.6K views11 Folien
Basic Html for beginners. von
Basic Html for beginners.Basic Html for beginners.
Basic Html for beginners.Muhammad Shafique
1.5K views12 Folien
Lesson plan: HTML Formatting Texts and Paragraphs von
Lesson plan: HTML Formatting Texts and ParagraphsLesson plan: HTML Formatting Texts and Paragraphs
Lesson plan: HTML Formatting Texts and ParagraphsKeith Borgonia Manatad
5.1K views8 Folien
Lecture 2 introduction to html basics von
Lecture 2 introduction to html basicsLecture 2 introduction to html basics
Lecture 2 introduction to html basicsAliMUSSA3
123 views27 Folien

Was ist angesagt?(16)

DSL in test automation von test test
DSL in test automationDSL in test automation
DSL in test automation
test test6.6K views
Lecture 2 introduction to html basics von AliMUSSA3
Lecture 2 introduction to html basicsLecture 2 introduction to html basics
Lecture 2 introduction to html basics
AliMUSSA3123 views
Module 2 Lesson 1 von claytors
Module 2 Lesson 1Module 2 Lesson 1
Module 2 Lesson 1
claytors1.2K views
Html for beginners part I von Unaib Aslam
Html for beginners part IHtml for beginners part I
Html for beginners part I
Unaib Aslam1.4K views
CSS3 and a brief introduction to Google Maps API v3 von Jeffrey Barke
CSS3 and a brief introduction to Google Maps API v3 CSS3 and a brief introduction to Google Maps API v3
CSS3 and a brief introduction to Google Maps API v3
Jeffrey Barke1.2K views
Intro to HTML, CSS & JS - Internship Presentation Week-3 von Devang Garach
Intro to HTML, CSS & JS - Internship Presentation Week-3Intro to HTML, CSS & JS - Internship Presentation Week-3
Intro to HTML, CSS & JS - Internship Presentation Week-3
Devang Garach1K views
HTML email best practices von Jeffrey Barke
HTML email best practicesHTML email best practices
HTML email best practices
Jeffrey Barke1.2K views

Similar a Impedance Mismatch 2.0

Super Sizing Youtube with Python von
Super Sizing Youtube with PythonSuper Sizing Youtube with Python
Super Sizing Youtube with Pythondidip
15.2K views25 Folien
Os Solomon von
Os SolomonOs Solomon
Os Solomonoscon2007
661 views25 Folien
GoF Design patterns I: Introduction + Structural Patterns von
GoF Design patterns I:   Introduction + Structural PatternsGoF Design patterns I:   Introduction + Structural Patterns
GoF Design patterns I: Introduction + Structural PatternsSameh Deabes
3.1K views38 Folien
Struts 2-overview2 von
Struts 2-overview2Struts 2-overview2
Struts 2-overview2divzi1913
380 views16 Folien
J2EE Batch Processing von
J2EE Batch ProcessingJ2EE Batch Processing
J2EE Batch ProcessingChris Adkin
7.2K views151 Folien
Importance Of Being Driven von
Importance Of Being DrivenImportance Of Being Driven
Importance Of Being DrivenAntonio Terreno
1.1K views23 Folien

Similar a Impedance Mismatch 2.0(20)

Super Sizing Youtube with Python von didip
Super Sizing Youtube with PythonSuper Sizing Youtube with Python
Super Sizing Youtube with Python
didip15.2K views
Os Solomon von oscon2007
Os SolomonOs Solomon
Os Solomon
oscon2007661 views
GoF Design patterns I: Introduction + Structural Patterns von Sameh Deabes
GoF Design patterns I:   Introduction + Structural PatternsGoF Design patterns I:   Introduction + Structural Patterns
GoF Design patterns I: Introduction + Structural Patterns
Sameh Deabes3.1K views
Struts 2-overview2 von divzi1913
Struts 2-overview2Struts 2-overview2
Struts 2-overview2
divzi1913380 views
J2EE Batch Processing von Chris Adkin
J2EE Batch ProcessingJ2EE Batch Processing
J2EE Batch Processing
Chris Adkin7.2K views
Struts 2 Overview von skill-guru
Struts 2 OverviewStruts 2 Overview
Struts 2 Overview
skill-guru2.6K views
Struts 2-overview2 von Long Nguyen
Struts 2-overview2Struts 2-overview2
Struts 2-overview2
Long Nguyen575 views
ITARC15 Workshop - Architecting a Large Software Project - Lessons Learned von João Pedro Martins
ITARC15 Workshop - Architecting a Large Software Project - Lessons LearnedITARC15 Workshop - Architecting a Large Software Project - Lessons Learned
ITARC15 Workshop - Architecting a Large Software Project - Lessons Learned
João Pedro Martins1.7K views
Architecting a Large Software Project - Lessons Learned von João Pedro Martins
Architecting a Large Software Project - Lessons LearnedArchitecting a Large Software Project - Lessons Learned
Architecting a Large Software Project - Lessons Learned
João Pedro Martins4.8K views
10 things you're doing wrong in Talend von Datalytyx
10 things you're doing wrong in Talend10 things you're doing wrong in Talend
10 things you're doing wrong in Talend
Datalytyx49 views
Servlets and jsp pages best practices von ejjavies
Servlets and jsp pages best practicesServlets and jsp pages best practices
Servlets and jsp pages best practices
ejjavies1.9K views
Why You Should Use MERN Stack for Startup Apps? von Pixel Crayons
Why You Should Use MERN Stack for Startup Apps?Why You Should Use MERN Stack for Startup Apps?
Why You Should Use MERN Stack for Startup Apps?
Pixel Crayons95 views
Going native with html5 web components von James York
Going native with html5 web componentsGoing native with html5 web components
Going native with html5 web components
James York628 views
Performance and Memory Tuning - Part II - Transcript.pdf von ShaiAlmog1
Performance and Memory Tuning - Part II - Transcript.pdfPerformance and Memory Tuning - Part II - Transcript.pdf
Performance and Memory Tuning - Part II - Transcript.pdf
ShaiAlmog1295 views
December 4 SDForum Java Sig Presentation von Jonathan Abrams
December 4 SDForum Java Sig PresentationDecember 4 SDForum Java Sig Presentation
December 4 SDForum Java Sig Presentation
Jonathan Abrams2.6K views
The 90-Day Startup with Google AppEngine for Java von David Chandler
The 90-Day Startup with Google AppEngine for JavaThe 90-Day Startup with Google AppEngine for Java
The 90-Day Startup with Google AppEngine for Java
David Chandler1.4K views

Más de Lars Marius Garshol

JSLT: JSON querying and transformation von
JSLT: JSON querying and transformationJSLT: JSON querying and transformation
JSLT: JSON querying and transformationLars Marius Garshol
4K views68 Folien
Data collection in AWS at Schibsted von
Data collection in AWS at SchibstedData collection in AWS at Schibsted
Data collection in AWS at SchibstedLars Marius Garshol
866 views68 Folien
Kveik - what is it? von
Kveik - what is it?Kveik - what is it?
Kveik - what is it?Lars Marius Garshol
1.8K views83 Folien
Nature-inspired algorithms von
Nature-inspired algorithmsNature-inspired algorithms
Nature-inspired algorithmsLars Marius Garshol
1.9K views131 Folien
Collecting 600M events/day von
Collecting 600M events/dayCollecting 600M events/day
Collecting 600M events/dayLars Marius Garshol
1.4K views85 Folien
History of writing von
History of writingHistory of writing
History of writingLars Marius Garshol
1.5K views17 Folien

Más de Lars Marius Garshol(20)

Using the search engine as recommendation engine von Lars Marius Garshol
Using the search engine as recommendation engineUsing the search engine as recommendation engine
Using the search engine as recommendation engine
Lars Marius Garshol5.2K views
NoSQL databases, the CAP theorem, and the theory of relativity von Lars Marius Garshol
NoSQL databases, the CAP theorem, and the theory of relativityNoSQL databases, the CAP theorem, and the theory of relativity
NoSQL databases, the CAP theorem, and the theory of relativity
Lars Marius Garshol21.8K views
Introduction to Big Data/Machine Learning von Lars Marius Garshol
Introduction to Big Data/Machine LearningIntroduction to Big Data/Machine Learning
Introduction to Big Data/Machine Learning
Lars Marius Garshol306.6K views

Último

6g - REPORT.pdf von
6g - REPORT.pdf6g - REPORT.pdf
6g - REPORT.pdfLiveplex
9 views23 Folien
Empathic Computing: Delivering the Potential of the Metaverse von
Empathic Computing: Delivering  the Potential of the MetaverseEmpathic Computing: Delivering  the Potential of the Metaverse
Empathic Computing: Delivering the Potential of the MetaverseMark Billinghurst
470 views80 Folien
From chaos to control: Managing migrations and Microsoft 365 with ShareGate! von
From chaos to control: Managing migrations and Microsoft 365 with ShareGate!From chaos to control: Managing migrations and Microsoft 365 with ShareGate!
From chaos to control: Managing migrations and Microsoft 365 with ShareGate!sammart93
9 views39 Folien
ChatGPT and AI for Web Developers von
ChatGPT and AI for Web DevelopersChatGPT and AI for Web Developers
ChatGPT and AI for Web DevelopersMaximiliano Firtman
181 views82 Folien
PharoJS - Zürich Smalltalk Group Meetup November 2023 von
PharoJS - Zürich Smalltalk Group Meetup November 2023PharoJS - Zürich Smalltalk Group Meetup November 2023
PharoJS - Zürich Smalltalk Group Meetup November 2023Noury Bouraqadi
120 views17 Folien
Microsoft Power Platform.pptx von
Microsoft Power Platform.pptxMicrosoft Power Platform.pptx
Microsoft Power Platform.pptxUni Systems S.M.S.A.
47 views38 Folien

Último(20)

6g - REPORT.pdf von Liveplex
6g - REPORT.pdf6g - REPORT.pdf
6g - REPORT.pdf
Liveplex9 views
Empathic Computing: Delivering the Potential of the Metaverse von Mark Billinghurst
Empathic Computing: Delivering  the Potential of the MetaverseEmpathic Computing: Delivering  the Potential of the Metaverse
Empathic Computing: Delivering the Potential of the Metaverse
Mark Billinghurst470 views
From chaos to control: Managing migrations and Microsoft 365 with ShareGate! von sammart93
From chaos to control: Managing migrations and Microsoft 365 with ShareGate!From chaos to control: Managing migrations and Microsoft 365 with ShareGate!
From chaos to control: Managing migrations and Microsoft 365 with ShareGate!
sammart939 views
PharoJS - Zürich Smalltalk Group Meetup November 2023 von Noury Bouraqadi
PharoJS - Zürich Smalltalk Group Meetup November 2023PharoJS - Zürich Smalltalk Group Meetup November 2023
PharoJS - Zürich Smalltalk Group Meetup November 2023
Noury Bouraqadi120 views
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLive von Network Automation Forum
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLiveAutomating a World-Class Technology Conference; Behind the Scenes of CiscoLive
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLive
DALI Basics Course 2023 von Ivory Egg
DALI Basics Course  2023DALI Basics Course  2023
DALI Basics Course 2023
Ivory Egg14 views
Piloting & Scaling Successfully With Microsoft Viva von Richard Harbridge
Piloting & Scaling Successfully With Microsoft VivaPiloting & Scaling Successfully With Microsoft Viva
Piloting & Scaling Successfully With Microsoft Viva
The details of description: Techniques, tips, and tangents on alternative tex... von BookNet Canada
The details of description: Techniques, tips, and tangents on alternative tex...The details of description: Techniques, tips, and tangents on alternative tex...
The details of description: Techniques, tips, and tangents on alternative tex...
BookNet Canada121 views
Lilypad @ Labweek, Istanbul, 2023.pdf von Ally339821
Lilypad @ Labweek, Istanbul, 2023.pdfLilypad @ Labweek, Istanbul, 2023.pdf
Lilypad @ Labweek, Istanbul, 2023.pdf
Ally3398219 views
TouchLog: Finger Micro Gesture Recognition Using Photo-Reflective Sensors von sugiuralab
TouchLog: Finger Micro Gesture Recognition  Using Photo-Reflective SensorsTouchLog: Finger Micro Gesture Recognition  Using Photo-Reflective Sensors
TouchLog: Finger Micro Gesture Recognition Using Photo-Reflective Sensors
sugiuralab15 views
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N... von James Anderson
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...
James Anderson33 views
Five Things You SHOULD Know About Postman von Postman
Five Things You SHOULD Know About PostmanFive Things You SHOULD Know About Postman
Five Things You SHOULD Know About Postman
Postman27 views
Voice Logger - Telephony Integration Solution at Aegis von Nirmal Sharma
Voice Logger - Telephony Integration Solution at AegisVoice Logger - Telephony Integration Solution at Aegis
Voice Logger - Telephony Integration Solution at Aegis
Nirmal Sharma17 views
Igniting Next Level Productivity with AI-Infused Data Integration Workflows von Safe Software
Igniting Next Level Productivity with AI-Infused Data Integration Workflows Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Safe Software225 views
Transcript: The Details of Description Techniques tips and tangents on altern... von BookNet Canada
Transcript: The Details of Description Techniques tips and tangents on altern...Transcript: The Details of Description Techniques tips and tangents on altern...
Transcript: The Details of Description Techniques tips and tangents on altern...
BookNet Canada130 views

Impedance Mismatch 2.0

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.