Introduction to Web Science

Slides:



Advertisements
Similar presentations
Computer Ontology – Final Project Presentation Rajesh Karunamurthy Khalid Hassan Md.Mahmudur Rahman Ali Kiani.
Advertisements

Ontology Engineering for the Semantic Web and Beyond Natalya F. Noy Stanford University A large part of this tutorial is based on.
Database Systems: Design, Implementation, and Management Tenth Edition
Semiotics and Ontologies. Ontologies contain categories, lexicons contain word senses, terminologies contain terms, directories contain addresses, catalogs.
Tutorial on Ontology Management
Ontology development in Protégé. Lecture 2 Introduction to Protégé 2 Pablo Romero, Department of Informatics Overview Components of an ontology The ontology.
Ontologies - Design principles Cartic Ramakrishnan LSDIS Lab University of Georgia.
Ontology… A domain ontology seeks to reduce or eliminate conceptual and terminological confusion among the members of a user community who need to share.
Natasha Noy Stanford University Ontology Development 101 A large part of this tutorial is based on “Ontology Development 101: A Guide to Creating Your.
Slides modified from Natasha Noy, protege.stanford.edu/amia2003/AMIA2003Tutorial.ppt CSC 8520 Fall, Paula Matuszek 1 CSC 8520: Artificial Intelligence.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 8 The Enhanced Entity- Relationship (EER) Model.
Chapter 14 (Web): Object-Oriented Data Modeling
Basic OOP Concepts and Terms
Introduction to ontologies and tools; some examples Josep Blat Universitat Pompeu Fabra.
Biological Ontologies Neocles Leontis April 20, 2005.
PROMPT: Algorithm and Tool for Automated Ontology Merging and Alignment Natalya F. Noy and Mark A. Musen.
October 15, 2007Inf 722 Information Organisation (Fall 2007) (Gangolly)1 Ontologies Lecture Notes Prepared by Jagdish S. Gangolly Interdisciplinary Ph.D.
Semantic Web Technologies Lecture # 2 Faculty of Computer Science, IBA.
CS 4100 Artificial Intelligence Prof. C. Hafner Class Notes Feb 23, 2012.
1 Dr Alexiei Dingli Introduction to Web Science Modelling the SW.
1 Ontology & Ontology Development 인공지능 연구실 허 희 근.
1 CS 456 Software Engineering. 2 Contents 3 Chapter 1: Introduction.
CHAPTER ONE Problem Solving and the Object- Oriented Paradigm.
INF 384 C, Spring 2009 Ontologies Knowledge representation to support computer reasoning.
RDF and OWL Developing Semantic Web Services by H. Peter Alesso and Craig F. Smith CMPT 455/826 - Week 6, Day Sept-Dec 2009 – w6d21.
Semantic Web Ontology Design Pattern Li Ding Department of Computer Science Rensselaer Polytechnic Institute October 3, 2007 Class notes for CSCI-6962.
CHAPTER 13 (ONLINE): OBJECT-ORIENTED DATA MODELING © 2013 Pearson Education, Inc. Publishing as Prentice Hall 1 Modern Database Management 11 th Edition.
© 2011 Pearson Education, Inc. Publishing as Prentice Hall 1 Chapter 13 (Online): Object-Oriented Data Modeling Modern Database Management 10 th Edition.
Semantic Web - an introduction By Daniel Wu (danielwujr)
Basic OOP Concepts and Terms. In this class, we will cover: Objects and examples of different object types Classes and how they relate to objects Object.
Semantic web course – Computer Engineering Department – Sharif Univ. of Technology – Fall Knowledge Representation Semantic Web - Fall 2005 Computer.
CIS 112 Exam Review. Exam Content 100 questions valued at 1 point each 100 questions valued at 1 point each 100 points total 100 points total 10 each.
EEL 5937 Ontologies EEL 5937 Multi Agent Systems Lecture 5, Jan 23 th, 2003 Lotzi Bölöni.
SKOS. Ontologies Metadata –Resources marked-up with descriptions of their content. No good unless everyone speaks the same language; Terminologies –Provide.
Metadata Common Vocabulary a journey from a glossary to an ontology of statistical metadata, and back Sérgio Bacelar
Ontologies - Design Ray Dos Santos June 19, 2009.
Ontology Basics 葉 慶 隆 大同大學 資訊工程系 URL:
Of 33 lecture 1: introduction. of 33 the semantic web vision today’s web (1) web content – for human consumption (no structural information) people search.
Ontology development and evaluation Dr. Alexandra I. Cristea.
Knowledge Representation. Keywordsquick way for agents to locate potentially useful information Thesaurimore structured approach than keywords, arranging.
Modeling Security-Relevant Data Semantics Xue Ying Chen Department of Computer Science.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Engineering, 7th edition. Chapter 8 Slide 1 System models.
Lecture 7: Semantic Web and Ontologies in Enterprises Dr. Taysir Hassan A. Soliman December 7, 2015 INF411 Information Engineering Information Systems.
COP Introduction to Database Structures
Ontology Engineering for the Semantic Web and Beyond
Enhanced Entity-Relationship (EER) Model
Business System Development
Integrating SysML with OWL (or other logic based formalisms)
DOMAIN ONTOLOGY DESIGN
Enhanced Entity-Relationship (EER) Modeling
Course Outcomes of Object Oriented Modeling Design (17630,C604)
Object-Oriented Software Engineering Using UML, Patterns, and Java,
ece 627 intelligent web: ontology and beyond
Abstract descriptions of systems whose requirements are being analysed
OBJECT RELATIONSHIPS, ATTRIBUTES, AND METHODS
 DATAABSTRACTION  INSTANCES& SCHEMAS  DATA MODELS.
UML Class Diagrams: Basic Concepts
ece 720 intelligent web: ontology and beyond
Lec 3: Object-Oriented Data Modeling
Chapter 20 Object-Oriented Analysis and Design
2. An overview of SDMX (What is SDMX? Part I)
Software Construction Lecture 2
2. An overview of SDMX (What is SDMX? Part I)
Workshop for Programming And Systems Management Teachers
Basic OOP Concepts and Terms
Enhanced Entity-Relationship (EER) Modeling
Chapter 10 Structuring System Requirements: Conceptual Data Modeling
Chapter 4 System Modeling.
Lecture 10 Structuring System Requirements: Conceptual Data Modeling
Presentation transcript:

Introduction to Web Science Modelling the SW

Six challenges of the Knowledge Life Cycle Acquire Model Reuse Retrieve Publish Maintain

How do we model knowledge? Various ways ... Variables Data Structures Files Databases Networks Ontologies

What is an Ontology? (1)

What is an Ontology? (2) An ontology is explicit formal specification of the terms in a domain and the relations amongst them.

What is an Ontology? (3) An ontology is explicit formal specification of the terms in a domain and the relations amongst them. A bunch of impressive words, but what do they mean?

Why develop an Ontology? (1)

Why develop an Ontology? (2) Shift in recent years from AI experts to Domain experts Became common on the WWW Range from … Taxonomies E.g. categorising websites such as Yahoo Categorisations of Products E.g. such as Amazon

Why develop an Ontology? (3) To achieve this we have RDF Encodes knowledge on the web Makes it accessible by agents OWL Extends RDF with more expressive constructs Facilitates agent’s interaction

Why develop an Ontology? (4) Many disciplines have standard ontologies Used by domain experts To share and annotate information Medicine SNOMED (Systemized Nomenclature of Medicine) Unified Medical Language System

In simple terms … An ontology defines a common vocabulary for researchers who need to share information in a domain It includes machine-interpretable definitions of basic concepts in the domain and relations among them

Why would you develop an Ontology? To share common understanding of the structure of information among people or software agents To enable reuse of domain knowledge To make domain assumptions explicit To separate domain knowledge from the operational knowledge To analyze domain knowledge

Sharing common understanding Suppose several different Web sites contain medical information or provide medical e-commerce services If these Web sites share and publish the same underlying ontology of the terms they all use, then computer agents can extract and aggregate information from these different sites The agents can use this aggregated information to answer user queries or as input data to other applications.

Enabling reuse of domain knowledge Models for many different domains need to represent the notion of time This representation includes the notions of time intervals, points in time, relative measures of time, and so on If one group of researchers develops such an ontology in detail, others can simply reuse it for their domains Additionally, if we need to build a large ontology, we can integrate several existing ontologies describing portions of the large domain

Making explicit domain assumptions The implementation of the ontology makes it possible to change these assumptions easily if our knowledge about the domain changes Hard-coding assumptions about the world in programming-language code makes these assumptions not only hard to find and understand but also hard to change, in particular for someone without programming expertise In addition, explicit specifications of domain knowledge are useful for new users who must learn what terms in the domain mean

Separating the domain knowledge from the operational knowledge We can describe a task of configuring a product from its components according to a required specification Implement a program that does this configuration independent of the products and components themselves We can then develop an ontology of PC-components and characteristics and apply the algorithm to configure made-to-order PCs

Analysing domain knowledge Formal analysis of terms is extremely valuable when both attempting to reuse existing ontologies extending them

What would you do with an ontology? Often an ontology of the domain is not a goal in itself Similar to defining a set of data and their structure for other programs to use Problem-solving methods, domain-independent applications, and software agents use ontologies and knowledge bases built from ontologies as data

Example usage An ontology of wine and food This ontology can then be used as a basis for some application in a suite of restaurant-managing tools: Create wine suggestions for the menu of the day Answer queries of waiters and customers Analyze an inventory list of a wine cellar and suggest which wine categories to expand and which particular wines to purchase for upcoming menus or cookbooks

Different from OO programming Object-oriented programming centers primarily around methods on classes programmer makes design decisions based on the operational properties of a class A wheel can be a subclass in a class car Ontology designer makes decisions based on the structural properties of a class a class structure and relations among classes in an ontology are different from the structure for a similar domain in an object-oriented program A wheel is not a kind-of car!

Terminology Ontology : formal explicit description of concepts in a domain Classes : concepts Slots : properties, attributes, roles Facets : restrictions on roles Knowledgebase : Ontology + Instance

Classes Describe concepts in the domain E.g. a class of wines represents all wines Specific wines are instances of this class E.g. a Bordeaux wine is an instance of  the class of Bordeaux wines A class can have subclasses that represent concepts that are more specific than the superclass E.g. we can divide the class of all wines into red, white, and rosé wines Alternatively, we can divide a class of all wines into sparkling and non-sparkling wines. 

Slots Describe properties of classes and instances E.g. Château Lafite Rothschild Pauillac wine has a full body; it is produced by the Château Lafite Rothschild winery We have two slots describing the wine in this example: the slot body with the value full the slot maker with the value Château Lafite Rothschild winery At the class level, we can say that instances of the class Wine will have slots describing their flavor, body, sugar level, the maker of the wine and so on.

Steps to create an ontology … Determine the domain and scope of the ontology Defining classes in the ontology Arranging the classes in a taxonomic (subclass–superclass) hierarchy Defining slots and describing allowed values for these slots Creating instances

Rules to create an ontology No one correct way to model a domain, there are always viable alternatives The best solution almost always depends on the application that you have in mind and the extensions that you anticipate Ontology development is necessarily an iterative process Concepts in the ontology should be close to objects (physical or logical) and relationships in your domain of interest E.g. nouns (objects) or verbs (relationships)

Step 1: Determine the domain and scope of the ontology What is the domain that the ontology will cover? For what  we are going to use the ontology? For what types of questions the information in the ontology should provide answers? Who will use and maintain the ontology?

Step 1: Example (1) Consider the ontology of wine and food … Representation of food and wines is the domain of the ontology We will use this ontology for the applications that suggest good combinations of wines and food The concepts describing different types of wines, main food types, the notion of a good combination of wine and food and a bad combination will figure into our ontology It is also unlikely that the ontology will include concepts for managing inventory in a winery or employees in a restaurant even though these concepts are somewhat related to the notions of wine and food

Step 1: Example (2) But if it is used … to assist in natural-language processing of articles in wine magazines, it may be important to include synonyms and part-of-speech information for concepts in the ontology to help restaurant customers decide which wine to order, we need to include retail-pricing information for wine buyers in stocking a wine cellar, wholesale pricing and availability may be necessary

How to check its competence? Sketch a list of questions that a knowledge base based on the ontology should be able to answer … Does the ontology contain enough information to answer these types of questions? Do the answers require a particular level of detail or representation of a particular area? These competency questions are just a sketch and do not need to be exhaustive.

Example competency questions In the wine and food domain, the following are the possible competency questions … Which wine characteristics should I consider when choosing a wine? Is Bordeaux a red or white wine? Does Cabernet Sauvignon go well with seafood? What is the best choice of wine for grilled meat? Which characteristics of a wine affect its appropriateness for a dish? Does a bouquet or body of a specific wine change with vintage year? What were good vintages for Napa Zinfandel? Judging from this list of questions, the ontology will include the information on various wine characteristics and wine types, vintage years—good and bad ones—classifications of foods that matter for choosing an appropriate wine, recommended combinations of wine and food

Can we reuse existing ontologies? Check what others have done … Refine Extend it Might be useful if our system needs to interact with other applications that already use a particular ontology Even if the ontology is in a different formalism, most applications can convert from one to the other

Reuse Example If a French wines ontology already exists … Import this knowledge base and the ontology on which it is based We will have not only the classification of French wines but also wine characteristics used to distinguish and describe the wines Lists of wine properties may already be available from commercial Web sites

Enumerate important terms in an ontology (1) Useful to write down a list of all terms we would like either to make statements about or to explain to a user What are the terms we would like to talk about? What properties do those terms have? What would we like to say about those terms? E.g. important wine terms include … wine, grape, winery, location, a wine’s color, body, flavor and sugar content; different types of food, such as fish and red meat; subtypes of wine such as white wine, and so on. Initially,

Enumerate important terms in an ontology (2) It is important to get a comprehensive list of terms without worrying about overlap between concepts they represent … relations among the terms any properties that the concepts may have whether the concepts are classes or slots Typically, we create a few definitions of the concepts in the hierarchy and then  continue by describing properties of these concepts and so on. This is the most important  step in the ontology-design process!

Step 2: Define the classes and the class hierarchy Three approaches Top Down Start from most general concepts and specialise Wine -> White, Red, Rose Bottom Up Define specific class and group into generic concepts White, Red, Rose -> Wine Combination None of the methods are better than the other

Step 3 : From the enumeration mentioned earlier … Select the terms that describe objects having independent existence rather than terms that describe these objects These terms will be classes We organize the classes into a hierarchical by asking if by being an instance of one class, the object will necessarily (i.e., by definition) be an instance of some other class

Step 4: Define the properties of classes (slots) Create the internal structure (the properties) E.g. a wine’s color, body, flavor and sugar content and location of a winery

Different kinds of slots … “intrinsic” properties such as the flavor of a wine “extrinsic” properties such as a wine’s name, and area it comes from Parts if the object is structured; these can be both physical and abstract “parts” e.g., the courses of a meal Relationships to other individuals these are the relationships between individual members of the class and other items e.g. the maker of a wine, representing a relationship between a wine and a winery, and the grape the wine is made from

Inheritance All subclasses of a class inherits the slots of that class Thus, a slot should be attached to the most general class that can have that property E.g. body and color should be attached to the class Wine

Facets Slots have facets (metadata) describing … E.g. Value type Cardinality (number of values) Other features E.g. The name of the wine is a String A winery produces >=1 wines

Slot Cardinality How many values will a slot have? Single cardinality Multiple cardinality Minimum cardinality Maximum cardinality

Slot-value type String Number Boolean Enumerated E.g. the VALUE slot can take one of three possible values; STRONG, MODERATE, DELICATE Instance an instance of another class E.g. Winery would have a slot listing the instances of the wines they produce

Domain and Range of a Slot Allowed classes For the Produces slot the range can be Wine i.e. a Winery produces Wine Domain A class to which a slot is attached The Winery class is the domain of the Produces i.e. wine is produced by a Winery

Doman and Range rules Choose the most generic If a list of classes defining a range or a  domain of a slot includes a class and its subclass, remove the subclass If a list of classes defining a range or a  domain of a slot contains all subclasses of a class A, but not the class A itself, the range should contain only the class A and not the subclasses

Creating Instances Chateau-Morgan-Beaujolais Body: Light Color: Red Flavor: …

Trouble shooting … (1) The class hierarchy represents an “is-a” or “kind-of” relation E.g. a Chardonnay “kind-of” Wine A single wine is not a subclass of all wines E.g. Wine is not a “kind-of” Wines! Transitivity of the hierarchical relations If B is a subclass of A and C is a subclass of B, then C is a subclass of A A > B > C = A > C B is direct subclass of A while C is indirect

Trouble shooting … (2) Class hierarchies evolve A Priest is Male The Anglicans changed the rule and Priests can be women Classes and their names Class is a label to a concept in a domain Not necessary represent the words that denote that concept Synonyms for the same concept do not represent different classes E.g. Shrimps and Prawns should exist in one class

Trouble shooting … (3) Avoid class cycles Multiple Inheritance A has a subclass of B B is a super class of A This would mean that A = B Multiple Inheritance Possible A class can be a subclass of several classes A dog is a subset of the class animal A dog is a subset of the class pet

Siblings … Siblings are classes that are direct subclasses of the same class All the siblings (except for root) must be at the same level of generality No rule for the number of siblings, but in general … Between 2 and 12 1 shows a modeling problem or incompleteness More than 12 probably shows room for grouping However, if no natural classes exist to group concepts in the long list of siblings, there is no need to create artificial classes

When should we introduce a new class? (1) We should introduce it only when the subclass has … additional properties that the superclass does  not have restrictions different from those of the superclass participate in different relationships than the superclasses

When should we introduce a new class? (2) Classes in terminological hierarchies do not have to introduce new properties E.g. A classification of medical diseases No need of specific properties if it is how they are classified in the real world

New class or a new property? Answer lies in the scope How important is the concept for our domain? A class should not change often (a property does change) If we need to distinguish between objects, then create a class E.g. Left rib, Right rib or rib {Left, Right}

An instance or a class? Individual instances are the most specific concepts represented in a knowledge base

Warning!! The ontology should not contain all the possible information about the domain: you do not need to specialize (or generalize) more than you need for your application (at most one extra level each way)

Exercise Divide class into 2 Create an ontology representing special occasions … E.g. wedding, birthday, Christmas, etc Wins the group that creates the most complete ontology

Hint: Steps to create an ontology … Determine the domain and scope of the ontology Defining classes in the ontology Arranging the classes in a taxonomic (subclass–superclass) hierarchy Defining slots and describing allowed values for these slots Creating instances