Transcript
00:01Stephen Ervin from Harvard University.
00:06Let’s see, I wanted to say three things about this talk.
00:11One, I didn't actually bribe the editors to put my talk about object orientation right after Philip...
00:18...talked about objects multiple times.
00:22Two, if most of our talks in the geographic scale are at the 1:25,000 that we’ve been seeing here, and Carl's was out at...
00:31...one to a million or ten million or something, mine is at about 1:10 or 11.
00:37It's a very small topic, really, but I think it's important or I wouldn't be here.
00:44And it came up because I was doodling, as is a habit of mine, and I was doodling words...
00:52And it's just not point, lines, and polygons; that's pretty clear.
00:53...actually, not in PowerPoint but originally.
00:56In case you didn't get it I discovered that they lined up.
01:04And I thought, now, is everybody going to agree with me about that?
01:08I just took it for granted when I wrote this.
01:11But I'm not sure that everybody would agree with me about this and so I thought I would say a few words about it.
01:19In the last 10 years or so, certainly in the last 20 years, anybody who has been programming...
01:24...has been working around computers, has seen the emergence of this thing called "object-oriented" something.
01:30Usually object-oriented programming systems, which has the unfortunate acronym OOPS.
01:37Or, object-oriented databases, which are coupled with them.
01:42And many of the good ideas that have come out of object orientation, object-oriented programming...
01:47...and object-oriented databases, are applicable at higher level, not just for programmers'...
01:54...activities, such as the activities of geodesign.
01:59Hence, I've got one more acronym.
02:02No, wait.
02:03No wait! I've got...
02:05There we go - object-oriented geodesign.
02:11Object-oriented programming says Wiki, "a programmatic paradigm that uses objects," end quotes.
02:17Data structures consisting of data fields and methods.
02:22This may turn out and seem to many a quibble among programmers about something...
02:27...or other and so, and part, it is.
02:30But I'll try and clarify where I think it's not.
02:34Many modern programming languages now support OOP, because there have been some obvious benefits...
02:42...that have accrued to people writing code.
02:46A little bit of history, back in the early days, the prehistoric, preweb days, there was a little language called...
02:54...Small Talk that emerged from some very smart folks.
02:58And they wrote a very interesting little program called Thinglab, both of which you can Google...
03:03...if you're interested in, but not right now.
03:06And, there...it was really great, because in Thinglab, you could actually see things.
03:11There were balls that bounced.
03:14And that was interesting because they were able to encapsulate real physical objects...
03:19...and real physical attributes of these things that were just in code and make them so they could...
03:23...collide and respond to gravity or be elastic, and various other kinds of things.
03:27So that was interesting and cool in the early days of computer graphics.
03:31And it also turned out that there was this idea that, for example, a rubber ball was both an instance of...
03:37...something spherical and an instance of something elastic, and it got some of its properties from...
03:42...being spherical and being a member of the class of all spherical things.
03:46And it got some other properties from being elastic, and a member of the class of all elastic things.
03:51And as a programming convenience, you could write what you knew about elastic things in general...
03:56...and then you say, oh well, you know, rubber balls, a special case that happens to be spherical...
04:00...has some other attributes.
04:02A spring is another kind of elastic thing, because you could reuse all the stuff you knew about elastic things...
04:07...and then specialize what was unique about a spring.
04:10And a rubber band was an example of all things that are rubber and all things that are elastic...
04:14...and all things that are toroidal or cylindrical or something and also had these other attributes.
04:19That turned out to be a very powerful way of thinking about aggregating large, complicated assemblies...
04:25...of knowledge about things like the real world, or very small things like bank accounts and so on.
04:30And so this idea about this kind of programming directly led, quite directly, to Java...
04:36...which is one of the preeminent programming languages in the world out there, and the other two...
04:42...sort of main production languages in the world right now, Objective-C, which much of the Apple industry...
04:48...is built upon, and the dot net/dot com structures that the Microsoft Windows world uses in.
04:54And so this is happening out there.
04:57Indeed, much Esri software is object-oriented.
05:00There are ArcObjects that some of you have heard of references to in the talks to date.
05:07And at the underlying level, the level that programmers and developers who get access to the stuff...
05:13...are using objects and extending them.
05:16That's a great thing.
05:17You can take a standard class and extend it to your unique needs, and you inherit all the good work...
05:23...that was done by people before you plus whatever unique customizations you have to make yourself.
05:28And developers get all kinds of useful predefined objects to work with.
05:33There's the terrain data importer object, and you can say, oh! I'd like one of those in my application...
05:38...and just effectively import it and say “take it”, but in my case, I've got this additional thing that I want to do to it.
05:43And all you have to work on is the additional thing that you want to do, which is efficient...
05:47...and that's great, and it inherits and builds up things that can be traded.
05:52So Esri can hand out these objects to other people to use, refine, and use in different ways.
06:00But, geodesign community, unless they happen to be programmers working on this, don't get the same rich...
06:06...and expressive library of useful objects, which I think we could use.
06:12We mostly get, you know, PGP, and PLP, and many tools for making them look like...
06:20...or represent real-world objects, and we can say, oh, this icon, this double line with black...
06:28...in the middle and gray at the edges represents a road.
06:31And so it's sort of object-like you could just fake yourself into thinking you're working with a road...
06:35...but you're not really; you've just got a line with some attributes on it.
06:44And we don't get the two most valuable things that object-oriented programmers get...
06:48...which is encapsulated attributes and behavior; that is, not just the attributes but also the behavior.
06:53What do roads do - and how do they work - and how do they intersect with other things...
06:56...are all wrapped up in one package that you can hand around.
07:00And, this notion of class and instance inheritance.
07:03Where you can say, my road is a special case of all dirt roads but mine’s got this very special...
07:08...interesting characteristics about it, and build on that.
07:12And all of those things - those two things - have added up to a whole bunch of benefits that...
07:16...programmers enjoy, but most geodesigners don't.
07:22Things like, trees, forests, cars, fire hydrants, watersheds, are indeed objects that we could use.
07:30They come with a whole bunch of useful attributes already built in.
07:33You've got the tools to extend the attributes that you need, and share them in various ways.
07:39And indeed then, models and simulations can be built upon these, and even built into these...
07:46...kinds of objects that can be handed around and shared.
07:50There's an asterisk; that means, something to follow later.
07:54So, we could actually have a library - wouldn't that be great - of the kinds of things that we want to...
08:00...geodesign with, some of which are well known and understood and some of which are absolutely new...
08:05...and to be invented by you in a way that might draw upon some previous class attributes...
08:11...methods, and so on, and handed down, and moved along.
08:15 And there's the asterisk.
08:17It's not easy; that's what I'm saying, if it were easy it would have been done.
08:23There are many problems.
08:25How do you goactually what is the...and I’ll...
08:28...probably should have used the word ontology, but it's been used so many times here...
08:31...at this conference I didn't think I had to.
08:33But what is the ontology? What are the taxonomies?
08:36And how do you choose what are the appropriate top-level classes and instances that you want to use?
08:43There's no probably one right answer, and so what is the taxonomy of taxonomies, and the...
08:47...ontology of ontologies that we're going to have to work with that will be helpful?
08:57And indeed, the object-orientedness is interesting and fascinating, but as I and some others have...
09:02...pointed out for some time...
09:05...in the geoworld we have these things called fields like forests which are more than just the...
09:10...aggregation of the individual object trees, or so on.
09:13And they're not readily modeled in the object-oriented paradigm, which makes it interesting.
09:18It's a challenging, possibly even research-worthy, enterprise to think about.
09:25There are emergent methods.
09:29You search the literature and you'll find object-oriented this and object-oriented that in a wide range of...
09:35...applications that, and this is in the research environment, mostly. Researchers are sometimes a little bit...
09:42...ahead of the development industry.
09:47And, we've heard a couple of times about our friends at CityGML, and CityGML certainly...
09:53...I think right now, is one of the frontrunners in having both a starting set of taxonomy...
10:00...and ontology and sets of words and classes that are already shareable and can be specialized...
10:05...and can move around and be shared.
10:07So this is, I think right now, the best example of how this is working out, where you can add and subtract...
10:14...attributes from classes in ways they can use things.
10:20Is an acorn an object?
10:22Is an ecosystem an object?
10:25What about clouds?
10:27Well, there is no predefined class right now for clouds, but you can represent your clouds as generic city objects.
10:35That's a useful thing.
10:36Or, you could sit down and define the concept of a cloud, and all of the attributes that you want for it...
10:40...and all of the behaviors that you expect out of the cloud, and add it into the library for all to change...
10:45...or you could petition the OGC to add it into the canonical list of things that people might care about.
10:51And that's what the great benefit of object-oriented approaches will be.
10:58And, OOGIS is an old idea.
11:02Our friends Egenhofer and Frank wrote in '92, "The concept of complex objects and...
11:09...pertinent operations are more powerful modeling methods than the currently popular structure...
11:14...of relational tables and relational algebra."
11:16Not to diss relational tables and relational structure that most of us grew up with, with points, lines and...
11:22...polygons as the way to express a coherent world, but at least some smart folks out there have been...
11:29...thinking about alternate ways and costs and benefits of them, and I recommend some of this thinking...
11:35...to you for understanding some of this.
11:38Object-oriented geodesign may well require object-oriented database management systems.
11:44That's part of what they were saying - as opposed to the relational database system that most Esri users...
11:51...and certainly most database users for the last two decades have used.
11:54There's some different paradigms, and indeed, in the world of the web with large, huge cloud-like data...
12:01...you may have, some of you may know that there's a no-SQL database movement...
12:06...trying to understand the needs of the database systems and knowledge representation.
12:11And so you can read all about it at odbms.org.
12:17These kinds of geo-objects that I've just described would naturally reside in the library that I...
12:21...described when I first talked three years ago in Santa Barbara about something...
12:26...the spatial concepts and GIS and design.
12:28Before we had settled on geodesign, I simply said computer-aided geographic design system...
12:34...at the time, and one of the things, including the elements, including the objects and the classes that would...
12:39...be required in this design system that I proposed, was a library where you could store such things...
12:44...and share them and loan them out and a number of other important...
12:49The idea that objects, like elements, can have relationships between them, can be encoded and encapsulated...
12:55...in this paradigm, this way of writing code, and I’m beginning to think about models, and I think that's useful.
13:02And indeed, the diagrams that I talked about last year from this very same podium are all about objects.
13:10We say, oh, there's going to be a park over there, and the concept "park" carries...
13:14...a whole bunch of attributes with it, which I don't want to have to stop and fill out right now...
13:18...I just want to put this placeholder called "park" for the moment.
13:20I may replace it later on and say no, park's no good, what I want is building, parking lot...
13:24...and then from parking lot I want to go oh, you know, the kind that's got trees with pervious soils...
13:28...elaborate these ideas.
13:30So there is a process I think, of going from high-level objects with mostly default attributes to highly...
13:37...specialized objects with very detailed attributes, that is, part of the design part activity of...
13:43...geodesign, which object-orientedness, as a way of thinking, I think, helps.
13:52It's obvious that there are many, many, many use cases and many different kinds of applications of...
13:59...geodesign, and there will be various sorts of objects.
14:03And indeed, object-oriented methodology is not a panacea.
14:07You'll find, if you look in the literature, people will say, oh that stinks, that it takes too long...
14:11...it's got all kinds of problems with it.
14:13But you can find people saying that about anything these days, especially on the web.
14:18They are a proven approach, and I think they're what every geodesigner needs.
14:24Thank you.
Object Oriented GeoDesign
Stephen Ervin from Harvard University presents "Object Oriented GeoDesign" at the 2011 GeoDesign Summit.
- Recorded: Jan 7th, 2011
- Runtime: 14:31
- Views: 25481
- Published: Feb 24th, 2011
- Night Mode (Off)Automatically dim the web site while the video is playing. A few seconds after you start watching the video and stop moving your mouse, your screen will dim. You can auto save this option if you login.
- HTML5 Video (Off) Play videos using HTML5 Video instead of flash. A modern web browser is required to view videos using HTML5.
Right-click on these links to download and save this video.
- 480x270:MP4 (57.3 MB)
- 960x540:MP4 (97.4 MB)
If you don't have an Esri Global Login ID, please register here.