That’s a funny one, Steve. An interesting twist is “would you reuse someone else’s toothbrush? Even if it is the same make/model”? And if not, why not? The answers reveals implicit scope assumptions from the potential “reuser” perspective, as I mentioned in my other email.
Of course, software and ontologies can be replicated at near zero costs, so “reuse” of them is not like, say, “reusing” lumber or fixtures from a house that is torn down. When we talk of “reuse” in software and ontologies, we are really saying we want to “use” them in contexts and for purposes that may not be completely identical to those under which or for which they were developed by the original developer. If the developer deliberately designed them for use in some range of contexts, we typically don’t talk about “reuse”, but rather say we are incorporating/using components or “frameworks” in our software under development. Using operating systems, or DBMSs, or GUI components is not typically referred to as “reuse”, but it certainly is in the sense that we are using software functionality we didn’t develop ourselves from scratch. But we also all learned that however popular or “solid” some such set of software components might be, they all carry with them a bunch of context scope assumptions we need to be aware of lest we get unhandleable exceptions. For popular commercial components we typically rely on a community of users to alert us to the most significant ones, and we typically stumble on a few ourselves. For more domain-specific and uncommon software components we have to invest more time in code analysis, testing, and vendor/source dialog to determine whether a particular software component meets our specific needs. The hardware industry has fewer degrees of freedom for environmental conditions/contexts in which components may be safely used, but if your look at a spec sheet for such components, you might be surprised at how many such conditions are typically specified. Software and ontologies have a whole lot more!
Hans Polzer
From: ontology-summit-bounces@xxxxxxxxxxxxxxxx [mailto:ontology-summit-bounces@xxxxxxxxxxxxxxxx] On Behalf Of Wartik, Steven P "Steve"
Sent: Monday, January 27, 2014 5:13 PM
To: Ontology Summit 2014 discussion
Subject: Re: [ontology-summit] [Reusable Content] Characterizing or measuring reuse
Leo,
The comparison to software reuse is perhaps revealing. One of the problems with software reuse was that no one really knew what it meant. Many people thought reuse was about cutting and pasting source code. Others thought it was about libraries. I recall a mid-80’s workshop near Lake Placid, NY where someone finally said in exasperation, “I brushed my teeth this morning. Did I reuse my toothbrush?” He got a laugh but no definitive response.
I can think of my own definitions of what reuse might mean in semantic technologies, but first I’d like to know of any existing work on the subject. I have seen plenty of papers on modular ontology design and such things that talk about ontology reuse but never actually say what “reuse” means. It must be something more than an owl:imports assertion (right?). Whatever it is, it certainly isn’t the full definition in Webster’s.
Steve Wartik
Hi, Andrea,
María Poveda-Villalón presented during Ontology Summit 2013, and talked about OOPS!: at least for OWL ontology validation; see: http://ontolog.cim3.net/cgi-bin/wiki.pl?ConferenceCall_2013_01_31.
One issue we may not have raised yet (and I don’t want to go too far off on a tangent) is that reuse is not just an issue for ontologies (and other kinds of models, for that matter), but for software. Software reuse is not really that emphasized anymore (say, as opposed to a slight trend in the 1980s-1990s which promoted reuse). Consider object-oriented programming: one of the premises of OO was that, by having program constructs “closer” to real-world objects and properties (and data abstraction, polymorphism), greater design clarity and reuse would be promoted.
However, in my experience, programming code is nearly always developed from scratch, perhaps reusing via (string-based) cut-and-paste. There are software libraries (ostensibly certified) that some programmers do reuse and extend, and of course plugins/extensions based on open code (Firefox, Protégé, etc.) Service-Oriented Architecture has been a movement during the last 10+ years that tries to focus on individual reusable services, and it has had some success.
The rise of maturity models in information technology and model-driven architecture tries to address software reuse, to some extent. But the “not-invented-here” syndrome afflicts software, and perhaps also ontology development.
Thanks,
Leo
Other important questions in the "reusable content" arena are how to ascertain and improve the amount of reuse.
It "seems" that reuse is low, but there are many sites offering reusable content and therefore many opportunities for reuse. For example, in the Ontology Design Pattern (ODP) space, there are:
- W3C'S Ontology Engineering and Patterns Task Force (OEP) [1]
- Ontology Design Patterns org wiki [2]
In addition, there are foundational ontologies available, as discussed in the Upper Ontology Summit (2006) [4], as well as domain ontologies like FIBO.
So, does the wealth of information contradict the perception?
Or, is content present but it is just very difficult to use/re-use?
Perhaps we need to refine our engineering approaches and abilities to better find and evaluate reusable content? This is discussed in a paper by María Poveda-Villalón, Mari Carmen Suárez-Figueroa and Asunción Gómez-Pérez [5] that I found quite interesting.
I personally would love to see a review and recommendation system put in place for ontologies, patterns, linked data models, etc. Is this something that we could achieve?