Thursday, April 30, 2009

Thinking about the "Curse of Knowledge"

I was reading some old blog posts from Semantic Focus, and ran across one that was good food for thought - The Curse of Knowledge and the Semantic Web. Although I do not agree with everything in the article, it highlighted some important topics.

The premise is that experts include everything and the kitchen sink in an ontology (because they know so much about it) and use technology-specific language (which means little to people outside the domain of expertise). So, there ends up being a mapping problem between experts and lay people, and therefore between computers programmed (by people) to search for certain information.

On the importance (or curse) of mapping, I totally agree. However, the issue that peaks my interest is not the mapping between lay people and domain experts, as much as the mapping between perspectives of different groups in a business. These perspectives are what define the groups' vocabularies and ontologies. There is no single, "right" perspective - and there is a huge need to map and align the perspectives - to allow the unimpeded flow of information between groups, and to correct inconsistencies.

That is why I advocate mapping to an upper ontology. Upper ontologies capture general and reusable terms and definitions (for more information, see my earlier post). They should not restrict a mapping to a certain perspective, but allow all the perspectives to be aligned. (That is also why you may need more than one.) There will certainly be subsets and supersets of information, as well as information in only one perspective. That is to be expected. However, the relationships should be known, mappable and should NOT conflict.

Getting back to the article, it does highlight a few things to help with the "curse of knowledge":
  • Focus on the intent of the ontology, instead of the details (However, I think that you need both.)
  • Define small, focused ontologies, each with a single intent and extensions for details
  • Determine the core concept(s) and label them
I must add that the article also comments that experts have a problem explaining their domain to non-experts - because they know so much about the topic. With this, I disagree. An expert is one who can explain the core concepts of a domain simply. They can abstract the details to get at the essence of the topic, and yet, they can go "deep" to explain or advance the domain. Someone who simply knows some of the domain and can use the terminology (but not explain it) is not an expert - at least in my "vocabulary".

Tuesday, April 28, 2009

Musings on a Study on Twitter and Amorality

On April 14th, ScienceDaily published an article entitled "Can Twitter Make You Amoral? Rapid-File Media May Confuse your Moral Compass". The research discussed in this article held similar themes to another, published in the summer of 2008 by The Atlantic magazine, "Is Google Making Us Stupid?"

These articles with their grabbing titles first hook me, and then make me think. None of them are as dismissive of modern technology as their titles suggest. However, they are clearly not entirely positive on some of the impacts of technology on us as humans, especially on our children.

For some technologists, the articles are dismissed as fear-mongering. Read Write Web (RWW) had a post that did just that ("Twitter Leads to Immorality? C'mon"). One thing that jumps out at me is the difference in the single word immorality in the RWW title, versus amorality in the ScienceDaily title. Amorality is actually outside the sphere of morality (it is not moral or immoral). However, immorality is a lack of morals. There is a big difference.

Let me quote some of the RWW article, which itself includes quotes from the original work reported by ScienceDaily...

"According to first author Mary Helen Immordino-Yang, "for some kinds of thought, especially moral decision-making about other people's social and psychological situations, we need to allow for adequate time and reflection." Unfortunately, in our "real-time" web of information flow, some things happen too fast for us to process. This leads to us never being able to fully experience emotions about other people's psychological states. "That would have implications for your morality," said Immordino-Yang. ...

Fear-Mongering about Digital Media, Take 3?

Media scholar Manuel Castells, holder of the Wallis Anneberg Chair of Communication Technology and Society at USC went on to further interpret the findings saying, "in a media culture in which violence and suffering becomes an endless show, be it in fiction or in infotainment, indifference to the vision of human suffering gradually sets in."

We can't help but feel we've heard similar strains of this same argument before. Doesn't it remind you of that old saying "TV will rot your brain?" Or maybe it's a throwback to the worrisome findings from the past decade about how violent video games supposedly lead to actual violence. ...

But is digital media really that bad? We think not. Maybe we can't properly feel the correct amount of compassion or pain when watching the Twitter stream update in TweetDeck, but is the Twitter stream really the place to go to experience these emotions anyway?"

The last sentence is indeed the question. At issue is the vast amount of time and attention that is paid to technological access of information, versus what is learned from person-to-person communication, self-reflection, deep reading, etc.

I would describe the current digital environment as one full of “distractions”. You can (simultaneously) carry on 5 different IMs, listen to music with an earbud in one ear, watch/listen to TV (and change the channel incessantly), and be online on your computer. I have seen it done! So, how do people today learn empathy, and to deal with quiet, with frustration, with maintaining focus while doing boring, mundane work? More and more, I see people who cannot read and write English - they instead read and write IM TXT (shortened words, no capitalization, no punctuation, ...). That is hardly the best for conveying deep thoughts!

Many children today (including mine) do not want to be in a quiet space because it is boring. Many want external influences to soothe them. Reading is a last resort activity, when there is nothing “more interesting” to do. It takes too much time!

We have created a world of constant stimulation and immediate reward – which does not equip us to live in human time (versus computer time), to learn to understand ourselves and others, and to deal with other people as well as life’s boredom and frustrations.

As technologists, I argue that we have a responsibility to at least understand the impacts of technology, if not work to correct them!

Monday, April 27, 2009

What Makes Semantic Web and OWL Useful?

Well, to start with, the answer does NOT involve the use of XML (although that is convenient). XML is just a syntax (in search of a semantic :-). The real value in OWL is in the semantics that you can convey about a concept and its meaning relative to other concepts.

OWL builds on RDF and RDF-Schema (I talked about these briefly in an earlier post). From RDF and RDF-S, you get the ability to define classes (types of things), subclasses (more specific types of things), properties (and tie the applicability of the properties to different classes), and individuals (of a class). You can also label everything, and say where the concepts were defined using standard annotations. Interesting, but not enough, IMHO.

OWL then adds equality/inequality information for classes and properties, various property characteristics and restrictions (including cardinality), union/intersection and complement of classes, versioning information (like what an ontology is incompatibleWith), and other semantic details such as defining a class by an enumeration of its members or by specific values of its properties!

Sounds interesting - but what does this really mean? How about some examples?
  • equivalentClass, equivalentProperty - You can say that a class "Dog" and a class "Canine" are equivalent. Therefore any instances of the class, Canine, are reasoned to also be instances of the class, Dog. This is very necessary when aligning databases and different representation schemes!
  • disjointWith (class-level) - You can say that a class "Man" is disjoint from the class "Woman". Therefore, an instance cannot simultaneously belong to both classes - and a reasoner can infer that an instance that IS a Man, IS NOT a Woman.
  • sameAs and differentFrom (individual-level) - You can say that the Man named "Frank" is different from the Man named "George". In the Open World Assumption (see my definitions post if this doesn't mean anything to you), the Man Frank and the Man George may be the same person. Sometimes this is useful, and sometimes it is dangerous. Both Open and Closed World Assumptions come in handy.
  • inverseOf (property-level) - You can say that the property HasHusband is the inverse of HasWife. And, knowing that John's HasWife property is set to Mary, means that Mary's HasHusband property should/could be set to John.
  • TransitiveProperty, SymmetricProperty and FunctionalProperty - These concepts take you back to your math days in high school. A transitive property means that if a is related to b, and b is related to c, then a is related to c. The most often cited example of this is ancestry. If Mary is the ancestor of Bob, and Bob is the ancestor of Sue, then Mary is the ancestor of Sue. A symmetric property is one that holds in any order. An example of this is friendship - if Mary is friends with Julie, then Julie is friends with Mary (or so we hope). Lastly, a functional property means that there is zero or one unique value for an individual (remember a function has one output for each input). Cool!
  • allValuesFrom, someValuesFrom (property restrictions) - You can say that all values of the property, HasWife, must come from the class, Woman. Or, using the someValuesFrom restriction, you can indicate that at least one of the values of a property must range over the instances of a particular class. For example, a medical doctor can have a property HasCollegeDegrees, that must include at least one instance of the M.D. degree.
  • oneOf - A great example of this is the property DaysOfTheWeek, which must be oneOf Sunday, Monday, Tuesday, ... (at least in English). This is your basic enumeration!
  • hasValue - You can define a class by the value of its properties. For example, a Student is defined as someone with a value in its property, CurrentSchool.
  • unionOf, complementOf, intersetionOf (class-level) - These allow the combination of classes and restrictions. A great example is the membership of the European Union - which can be defined as the union of all citizens of all the member countries.

Wednesday, April 15, 2009

"Top Down" or "Bottom Up" Ontologies

I received the following question from a colleague of mine... He asked about the benefits and risks of using a single standardized ontology (a “top down” approach) versus using local, private, or community ontologies (“bottom up”). Unfortunately, the benefits of one are the risks of the other! A single standardized ontology admits no errors of translation or omission. However, consensus ranges from difficult to impossible to obtain, and usually many concessions have to be made during its definition. Local or community ontologies are natural, and admit no frustrations or human errors due to learning new representations, or due to using concepts that have little semantic meaning in a community. However, you typically have lots of community ontologies and need to interoperate between them.

What is a possible answer? Take the local, private and community ontologies of your business and map them "up" to an existing "standardized ontology" - such as exists in medicine or even construction - see, for example, ISO 15926. (I already discussed the possibilities of ontology alignment provided by the Semantic Web in earlier posts, and will provide more details over the next few weeks.)

Or, if a standard ontology does not exist, create one from the local ontologies by mapping the local ones to one or more "upper" ontologies. At this point, some people will say "ughhh" another term - "upper" ontology - what the heck is that? Upper ontologies capture very general and reusable terms and definitions. Two examples that are both interesting and useful are:
  • SUMO (http://www.ontologyportal.org), the Suggested Upper Merged Ontology - SUMO incorporates much knowledge and broad content from a variety of sources. Its downside is that it is not directly importable into the Semantic Web infrastructure, as it is written in a different syntax (something called KIF). Its upsides are its vast, general coverage, its public domain IEEE licensing, and the many domain ontologies defined to extend it.
  • Proton (http://proton.semanticweb.org/D1_8_1.pdf), PROTo ONtology - PROTON takes a totally different approach to its ontology definition. Instead of theoretical analysis and hand-creation of the ontology, PROTON was derived from a corpus of general news sources, and hence addresses modern day, political, financial and sports concepts. It is encoded in OWL (OWL-Lite to be precise) for Semantic Web use, and was defined as part of the European Union's SEKT (Semantically Enabled Knowledge Technologies) project, http://www.sekt-project.com. (I will definitely be blogging more about SEKT in future posts. There is much interesting work there!)
Now, I must be clear that I do NOT advocate pushing the standard ontology down to the local communities - unless there are only small tweaks to making the standard ontologies work there. With ontology alignment technologies, you can have the best of all worlds - a standard ontology to use when unifying and analyzing the local ontologies, but all the naturalness of the local ontologies for the communities.

Monday, April 13, 2009

What knowledge does a business need to capture?

If you talk to business rules or security vendors, you get one answer. If you talk to database and modeling folks, you get another answer. If you talk to business process or social networking vendors, you guessed it - yet other answers!

However, to understand, support and protect a business, its work products and its organizational units, you need all the following knowledge:
  • Who - the social/organizational aspects to understand responsibilities, privileges, networks, interdependencies and more
  • How - the processes and tasks of the business, describing the states of the business and interactions among its agents, hopefully tying together and allowing a progression from high-level descriptions to the necessary level of detail (and this information should address both the human and automated aspects of the processes and tasks)
  • Why - the intentions, goals and beliefs of the business (they really need to be written down and used in decision-making)
  • What - the basic terminologies and domain concepts, along with their meanings, details/attributes and relationships
BTW, you also need the lineage or pedigree of the knowledge and how it has changed over time. Time and change are very critical aspects of business! Details of a change (before and after) or the temporal relevancy of information are often important to retain, especially for compliance reasons.

Any of this data defined and used in isolation is incomplete and therefore, subject to interpretation and erroneous assumptions. At worst, the data disagrees from one usage or silo to the next, and then your business is just waiting for the next fire to put out!


It is necessary to find a way to tie all the usages and silos of information (written of course in different syntaxes, from different vendors, using different standards) together!

Thursday, April 9, 2009

Semantic Web and Business (Part 3)

In case anyone is confused by all the technical terms used in semantic computing, here is an explicit translation from ontology "language" to English:
  • Concept = class = noun = vocabulary word
  • Triple = subject-predicate-object (such as "John went to the library" - where "John" is the subject, "went-to" is the predicate, and "library" is the object)
  • Role = relation = association = the predicate in the triple = verb
  • Instance = a specific occurrence of a concept or relationship (can be manually defined or inferred)
  • Axiom = a statement of fact/truth that is taken for granted (i.e., is not proved)
  • Inference = deriving a logical conclusion from definitions and axioms
  • T-Box = a set of concepts and relationships (i.e., the definitions)
  • A-Box = a set of instances of the concepts and relationships
  • Hierarchy = arrangement of concepts or instances by some kind of classification/relationship mechanism - typical classification hierarchies are by type ("is-a" relationships - for example, "a tiger is a mammal") or by composition ("has-a" relationships - for example, "a person's name has the strucutre: personal or first name, zero or more middle names, and surname or last name")
  • Subsumption = is-a classification (determining the ordering of more general to more specific categories/concepts)
  • Consistency analysis = check to see that all specific instances make sense given the definitions, rules and axioms of an ontology
  • Satisfiability analysis = check to see that an instance of a concept can be created (i.e., that creating an instance will not produce an inconsistency/error)
  • Key = one or more properties that uniquely identify an individual instance of a concept/class
  • Monothetic classification = identifying a particular instance with a single key
  • Polythetic classification = identifying a particular instance by several possible keys which may not all exist for that instance
  • Surrogate key = an artificial key
  • Natural key = a key that has semantic meaning
  • CWA = Closed World Assumption (in databases) = anything not explicitly known to be true is assumed to be false (for example, if you know that John is the son of Mary but have a total of 3 children defined - John, Sue and Albert - and you ask who all the children of Mary are ... you get the answer "John" - 1 child)
  • OWA = Open World Assumption (in semantic computing) = anything not explicitly known is assumed to be true (using the same scenario above, asking the same question ... you get the answer "John, Sue and Albert" - 3 children)
These are the terms that come to the top of my mind, when I think about ontologies. But, if there are others, just send me email or leave me a comment.

Semantic Web and Business (Part 2)

In the last post, I talked about business' implicit ontologies and using semantic computing to help map and align different ontologies. In this post, I want to spend some time on the basics of ontology analysis and what a semantic (description logic) reasoner can do.

A description-logic reasoner (DL reasoner) takes concepts, individual instances of those concepts, roles (relationships between concepts and individuals) and sometimes constraints and rules - and then "reasons" over them to find inconsistencies (errors), infer new information, and determine classifications and hierarchies. Some basic relationships that are always present come from first-order logic - like intersections, unions, negations, etc. These are explicitly formalized in languages like OWL.

The reasoner that I am now using is Pellet from Clark and Parsia (http://clarkparsia.com/pellet/). It is integrated with Protege (which I mentioned in an earlier post), but also operates standalone. The nice thing is that Pellet has both open-source and commercial licenses to accomodate any business model - and is doing some very cool research on data validation and probabilistic reasoning (which you can read about on their blog, http://clarkparsia.com/weblog/).

How cool is it when you can get a program to tell you when your vocabulary is inconsistent or incomplete? Or, when a program can infer new knowledge for you, when you align two different vocabularies and then reason over the whole? No more relying on humans and test cases to spot all the errors!

Wednesday, April 8, 2009

Semantic Web and Business (Part 1)

Most people think of Semantic Web as a "pie in the sky", impossible "field of dreams". But, that is being short-sighted. Semantic web technologies are here today and being used for some extremely interesting work.

Typically, you hear about semantic web as a way for computers to understand and operate over the data on the web, and not just exchange it via (mostly XML-based) syntaxes. However, to "understand" something, you must speak a common language and then have insight into the vocabulary and concepts used in that language. Well, the semantic web languages exist - they are standards like RDF (Resource Description Language), RDF-S (RDF Schema), and OWL (Web Ontology Language). These syntaxes carry the details of the concepts, terms and relationships of the vocabulary. (Note that I provided only basic links to the specifications here. There is much more detail available!)

One problem is defining the syntax - and we are getting there via the work of the W3C. The next problem is getting agreement about the vocabulary. That is much harder - since every group has their own ideas about what the vocabulary should be. So, here again, the Semantic Web steps in. Semantic Web proponents are not just researching how to define and analyze vocabularies (you could also use the word, "ontology", here) - but how to merge and align them!

So, where does this intersect with business? Businesses have lots of implicit vocabularies/ontologies (for example, belonging to procurement, accounts payable, specific domain technologies integral to the organization, IT and other groups). And, business processes and data flows cross groups and therefore, cross vocabularies - and this leads to errors! Typically, lots of them!

Does this mean that everyone adopt a single vocabulary? Usually that is not even possible ... People who have learned a vocabulary and use it to mean very specific things, cannot easily change to use a new, different word. Another problem is agreeing on what a term means - like "customer" (is that the entity that pays for something, an end-user, or some other variant on this theme?).

Changing words will cause a slow down in the operations of the business due to the need to argue over terminology and representation. Then if a standard vocabulary is ever in place, there will be slowdowns and errors as people try to work the new vocabulary into their practices and processes. (BTW, I think that this is one reason that "standard" common models or a single enterprise information model are so difficult to achieve.)

How do we get around this? Enter the Semantic Web to help with the alignment of vocabularies/ontologies. But, first the vocabularies have to be captured. Certainly, no one expects people to write RDF, RDF-S or OWL. But, we all can write our natural languages - and that takes us back to "controlled languages" as I discussed in my previous post. I have a lot of ideas on how to achieve this ... but, this will come in later posts.

So, more on this in later weeks, but hopefully this post provides some reasons to be interested in the semantic web (more than just its benefits to search) ...

Tuesday, April 7, 2009

DSLs - Do we have to love them?

DSL stands for "domain-specific language". And, according to Wikipedia (http://en.wikipedia.org/wiki/Domain-specific_programming_language), it is "a programming languaage or specification language dedicated to a particular problem domain, a particular problem representation technique, and/or a particular solution technique." Most likely, because the tools to produce them are programmer-oriented, DSLs define specific syntax (usually with seemingly bizarre semi-colons at the end of each definition) providing the inputs to computer frameworks or applications. Some examples are syntax to define security or systems management policies, definitions of how an application should be created or deployed, or even something simple like giving your name and a list of friends.

Why do systems engineers think that these are cool? Because they are fun to create, and are simpler to write and use than writing in a programming language or XML.

But, when is enough enough? Every application could end up with its own DSL - because each application expects specific data in some specific format. So, just like today, there are tons of user interfaces (but the industry is trying to standardize on a few due to customer pushback), we have (or if you don't think that we are there yet, will likely have) tons of DSLs. Talk about a business/IT nightmare!
Think about everything that you have to remember!

What are some alternatives? How about natural language? Not the messy grammar and slang of everyday natural language ... but a "controlled" version of this. What does this mean? Well, I like using Wikipedia (when its definitions are solid) - so, let's take their definition (http://en.wikipedia.org/wiki/Controlled_natural_language). Controlled NLs are "subsets of natural languages, obtained by restricting the grammar and vocabulary in order to reduce or eliminate ambiguity and complexity. Traditionally, controlled languages fall into two major types: those that improve readability for human readers (e.g. non-native speakers), and those that enable reliable automatic semantic analysis of the language."

Two excellent examples of the latter category are Attempto Controlled English (http://attempto.ifi.uzh.ch/site/) and a translation of OMG's Semantics of Business Vocabulary and Business Rules into English (in the appendices of the spec at http://www.omg.org/spec/SBVR/1.0/). (Note: the "official" SBVR definition is XML-based, and not very human readable/writable or anything close to controlled English.) :-) An interesting fact is that Attempto Controlled English has an add-in for Protege which allows the translation of English-defined vocabulary and rules into OWL and SWRL! (If you don't know what these are - no worries - I plan on spending some time defining them ... they are semantic computing standards.)

At the end of the day, I think that we need more natural interfaces and input mechanisms for business and IT people, and less techy specific languages (insert here: DSLs).

Monday, April 6, 2009

Welcome ...

For those who know me, you know that I used to have a blog at msdn (http://blogs.msdn.com/policy_based_business), and I used to work for Microsoft. Well, that all changed in early 2009 when my incubation was de-funded, and then in March when I headed out on my own.

I am now consulting and working on software for capturing, analyzing and using the "implicit" ontologies and domain knowledge that exists in business people's heads. The work is based on several technologies addressing:
  • ontology development and alignment
  • controlled natural language processing
  • semantic web
  • knowledge engineering
  • business process development and modeling
  • and more!
... all accessed through normal business tooling like Word and Excel!

What I will try to do in my posts is to explain the technology and how it can be useful. My goal is to communicate with both business and IT people - providing summaries, additional thoughts, and technical details. I also will provide pointers to the basic information and research, as well as a pointers to my own work. There is a lot out there, if you have the time to investigate it!

So, please stay tuned. And, I hope that this blog will be of great value to you.