SlideShare a Scribd company logo
1 of 34
Ontology development 101: 
a guide to creating your first ontology 
by Natalya F. Noy & Deborah L. McGuinness 
M0261111 陳冠廷 
National Changhua University of Education 
Department of Information Management
Definition of ontology 
“Explicit formal specifications of the terms in the 
domain and relations among them.”
Who want to develop an ontology? 
Why? 
1. To share common understanding of the structure of information 
among people or software agents 
2. To enable reuse of domain knowledge 
3. To make domain assumptions explicit 
4. To separate domain knowledge from the operational knowledge 
5. To analyze domain knowledge
What is in an ontology? 
• An ontology is a formal explicit description of concepts in a domain 
of discourse 
• It contains 
▫ Classes (concept) 
▫ Slots (properties or roles) 
▫ Facets (role restrictions) 
▫ Instances
Products of Apple 
iPhone 
iPhone 
iPad 
iPhone 2 iPhone 3 iPhone 4
Products of Apple 
iPhone 
iPhone 
iPad 
iPhone 2 iPhone 3 iPhone 4
Developing an ontology includes 
• Define classes 
• Arrange the classes in a taxonomic hierarchy 
• Define slots 
• Fill the values of the slots for instances
A Simple Knowledge-Engineering Methodology 
• There is no one correct way to model a domain 
• Ontology development is necessarily an iterative process 
• Concepts in the ontology should be close to objects(nouns) and 
relationship(verbs) in your domain.
1 
2 
3 
Determine the domain and scope of the ontology 
Consider reusing existing ontologies 
Enumerate important terms in the ontology
4 
5 
6 
7 
Define the classes and the class hierarchy 
Define the properties of classes-slots 
Define the facets of the slots 
Create instances
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?
Determine the domain and scope of the ontology (cont.) 
Competency questions (Gruninger & Fox 1995) 
• 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?
Consider reusing existing ontologies 
• Ontolingua ontology library 
(www.ksl.stanford.edu/software/ontolingua) 
• DAML ontology library (www.daml.org/ontologies) 
• UNSPSC (www.unspsc.org) 
• RosettaNet (www.rosettanet.org) 
• DMOZ (www.dmoz.org)
Enumerate important terms in the ontology 
• Important wine-related terms will include 
▫ Wine 
▫ Grape 
▫ Winery 
▫ Location 
▫ Color 
▫ Flavor 
▫ Body 
▫ Sugar content
Define the classes and the class hierarchy 
• There are several possible approaches in developing a class 
hierarchy (Uschold and Gruninger 1996) 
▫ Top-down 
▫ Bottom-up 
▫ Combination
Define the classes and the class hierarchy (cont.) 
If a class A is a superclass of class B, 
then every instance of class B is also 
an instance of A.
Define the properties of classes-slots
Define the facets of the slots 
• Slots can have different facets describing the value type, allow 
values, the number of the values(cardinality), and other features of 
the value the slot can take.
6 
Define the facets of the slots (cont.) 
• String 
• Number (Integer) 
• Boolean 
• Enumerated (Symbol) 
• Instance
6 
Define the facets of the slots (cont.) 
Winery 
produces 
Wine 
Domain 
Range
7 
Create Instances 
• Defining an individual instance of a class requires 
▫ Choosing a class 
▫ Creating an individual instance of that class 
▫ Filling in the slot values
7 
Create Instances
Defining classes and a class hierarchy 
1. Ensuring that the class hierarchy is correct 
2. Analyzing siblings in a class hierarchy 
3. Multiple inheritance 
4. When to introduce a new class 
5. A new class or a property value 
6. An instance or a class 
7. Limiting the scope 
8. Disjoint subclasses
Defining classes and a class hierarchy (cont.) 
1. Ensuring that the class hierarchy is correct 
▫ An “is-a” relation 
▫ A single wine is not a subclass of all wines 
▫ Transitivity of the hierarchical relations 
▫ Evolution of a class hierarchy 
▫ Classes and their names 
▫ Avoiding class cycles 
A 
B 
C 
is-a 
is-a 
is-a
鳳梨酥 
冬瓜餡 
鳳梨酥 
土鳳梨酥 
is-a
Defining classes and a class hierarchy (cont.) 
2. Analyzing siblings in a class hierarchy 
▫ Siblings in a class hierarchy 
▫ How many is too many and how few are too few?
Defining classes and a class hierarchy (cont.) 
3. Multiple inheritance 
4. When to introduce a new class (or not) 
▫ have additional properties that the superclass does not have 
▫ restrictions different from those of the superclass 
▫ participate in different relationships than the superclasses
Defining classes and a class hierarchy (cont.) 
5. A new class or a property value? 
6. An instance or a class? 
7. Limiting the scope 
8. Disjoint subclasses
Define properties-more details 
• Inverse slots 
• Default values
What’s in a name? 
• Capitalization and delimiters 
• Singular or plural 
• Prefix and suffix conventions 
▫ has- 
▫ -of 
• Other naming considerations
Conclusion 
• This guide described an ontology-development methodology for 
declarative frame-based systems. 
• This guide listed the steps in the ontology-development process. 
• “There is no single correct ontology for any domain” 
• “The proof is in the pudding.”
Q & A

More Related Content

What's hot

Java SE 8 技術手冊第 5 章 - 物件封裝
Java SE 8 技術手冊第 5 章 - 物件封裝Java SE 8 技術手冊第 5 章 - 物件封裝
Java SE 8 技術手冊第 5 章 - 物件封裝Justin Lin
 
Typescript in 30mins
Typescript in 30mins Typescript in 30mins
Typescript in 30mins Udaya Kumar
 
Spring 2.0 技術手冊第一章 - 認識 Spring
Spring 2.0 技術手冊第一章 - 認識 SpringSpring 2.0 技術手冊第一章 - 認識 Spring
Spring 2.0 技術手冊第一章 - 認識 SpringJustin Lin
 
TypeScript: coding JavaScript without the pain
TypeScript: coding JavaScript without the painTypeScript: coding JavaScript without the pain
TypeScript: coding JavaScript without the painSander Mak (@Sander_Mak)
 
Authorship analysis using function words forensic linguistics
Authorship analysis using function words forensic linguisticsAuthorship analysis using function words forensic linguistics
Authorship analysis using function words forensic linguisticsVlad Mackevic
 
The Art of Metaprogramming in Java
The Art of Metaprogramming in Java  The Art of Metaprogramming in Java
The Art of Metaprogramming in Java Abdelmonaim Remani
 
Strings in Java
Strings in Java Strings in Java
Strings in Java Hitesh-Java
 
Java SE 8 技術手冊第 3 章 - 基礎語法
Java SE 8 技術手冊第 3 章 - 基礎語法Java SE 8 技術手冊第 3 章 - 基礎語法
Java SE 8 技術手冊第 3 章 - 基礎語法Justin Lin
 
Java SE 8 技術手冊第 1 章 - Java平台概論
Java SE 8 技術手冊第 1 章 - Java平台概論Java SE 8 技術手冊第 1 章 - Java平台概論
Java SE 8 技術手冊第 1 章 - Java平台概論Justin Lin
 
Scientific and Technical Translation in English - Week 3
Scientific and Technical Translation in English - Week 3Scientific and Technical Translation in English - Week 3
Scientific and Technical Translation in English - Week 3Ron Martinez
 
Javascript Roadmap - The Basics
Javascript Roadmap - The BasicsJavascript Roadmap - The Basics
Javascript Roadmap - The BasicsAswin Barath
 

What's hot (18)

Understanding linq
Understanding linqUnderstanding linq
Understanding linq
 
Java SE 8 技術手冊第 5 章 - 物件封裝
Java SE 8 技術手冊第 5 章 - 物件封裝Java SE 8 技術手冊第 5 章 - 物件封裝
Java SE 8 技術手冊第 5 章 - 物件封裝
 
Typescript in 30mins
Typescript in 30mins Typescript in 30mins
Typescript in 30mins
 
Distributional semantics
Distributional semanticsDistributional semantics
Distributional semantics
 
TypeScript Presentation
TypeScript PresentationTypeScript Presentation
TypeScript Presentation
 
Register theory
Register theoryRegister theory
Register theory
 
Spring 2.0 技術手冊第一章 - 認識 Spring
Spring 2.0 技術手冊第一章 - 認識 SpringSpring 2.0 技術手冊第一章 - 認識 Spring
Spring 2.0 技術手冊第一章 - 認識 Spring
 
TypeScript: coding JavaScript without the pain
TypeScript: coding JavaScript without the painTypeScript: coding JavaScript without the pain
TypeScript: coding JavaScript without the pain
 
Lecture: Word Senses
Lecture: Word SensesLecture: Word Senses
Lecture: Word Senses
 
Pragmatics
PragmaticsPragmatics
Pragmatics
 
Theories of meaning
Theories of meaningTheories of meaning
Theories of meaning
 
Authorship analysis using function words forensic linguistics
Authorship analysis using function words forensic linguisticsAuthorship analysis using function words forensic linguistics
Authorship analysis using function words forensic linguistics
 
The Art of Metaprogramming in Java
The Art of Metaprogramming in Java  The Art of Metaprogramming in Java
The Art of Metaprogramming in Java
 
Strings in Java
Strings in Java Strings in Java
Strings in Java
 
Java SE 8 技術手冊第 3 章 - 基礎語法
Java SE 8 技術手冊第 3 章 - 基礎語法Java SE 8 技術手冊第 3 章 - 基礎語法
Java SE 8 技術手冊第 3 章 - 基礎語法
 
Java SE 8 技術手冊第 1 章 - Java平台概論
Java SE 8 技術手冊第 1 章 - Java平台概論Java SE 8 技術手冊第 1 章 - Java平台概論
Java SE 8 技術手冊第 1 章 - Java平台概論
 
Scientific and Technical Translation in English - Week 3
Scientific and Technical Translation in English - Week 3Scientific and Technical Translation in English - Week 3
Scientific and Technical Translation in English - Week 3
 
Javascript Roadmap - The Basics
Javascript Roadmap - The BasicsJavascript Roadmap - The Basics
Javascript Roadmap - The Basics
 

Viewers also liked

Viewers also liked (6)

Presentationonline
PresentationonlinePresentationonline
Presentationonline
 
Kashif_Resume_Vol1
Kashif_Resume_Vol1Kashif_Resume_Vol1
Kashif_Resume_Vol1
 
Touch screen echnology
Touch screen echnologyTouch screen echnology
Touch screen echnology
 
Ontology 101 - Kendall & McGuiness
Ontology 101 - Kendall & McGuinessOntology 101 - Kendall & McGuiness
Ontology 101 - Kendall & McGuiness
 
Consumer Behviour Ads
Consumer Behviour AdsConsumer Behviour Ads
Consumer Behviour Ads
 
WELCOME TO DREAM CAREER
WELCOME TO DREAM CAREERWELCOME TO DREAM CAREER
WELCOME TO DREAM CAREER
 

Similar to Guide to creating your first ontology

Ontology Engineering for the Semantic Web and beyond
Ontology Engineering for the Semantic Web and beyondOntology Engineering for the Semantic Web and beyond
Ontology Engineering for the Semantic Web and beyondPeter Geil
 
Categorization describing resource classes and types
Categorization describing resource classes and typesCategorization describing resource classes and types
Categorization describing resource classes and typesJames Chuang
 
Open hpi semweb-06-part3
Open hpi semweb-06-part3Open hpi semweb-06-part3
Open hpi semweb-06-part3Nadine Ludwig
 
Ontology dojo presentation eia 18 workshop take away
Ontology dojo presentation eia 18 workshop take awayOntology dojo presentation eia 18 workshop take away
Ontology dojo presentation eia 18 workshop take awayRen Pope
 
Realizing the Full Potential of Taxonomies by Branka Kosovac
Realizing the Full Potential of Taxonomies by Branka KosovacRealizing the Full Potential of Taxonomies by Branka Kosovac
Realizing the Full Potential of Taxonomies by Branka KosovacContent Strategy Workshops
 
OCP Java (OCPJP) 8 Exam Quick Reference Card
OCP Java (OCPJP) 8 Exam Quick Reference CardOCP Java (OCPJP) 8 Exam Quick Reference Card
OCP Java (OCPJP) 8 Exam Quick Reference CardHari kiran G
 
From Intermediate to Advanced - Taking Vocabulary Skills to the Next Level
From Intermediate to Advanced -  Taking Vocabulary Skills to the Next LevelFrom Intermediate to Advanced -  Taking Vocabulary Skills to the Next Level
From Intermediate to Advanced - Taking Vocabulary Skills to the Next LevelEnglish Gateway Inc.
 
From Intermediate to Advanced - Taking Vocabulary Skills to the Next Level
From Intermediate to Advanced -  Taking Vocabulary Skills to the Next Level From Intermediate to Advanced -  Taking Vocabulary Skills to the Next Level
From Intermediate to Advanced - Taking Vocabulary Skills to the Next Level English Gateway Inc.
 
JS for multidisciplinary teams
JS for multidisciplinary teamsJS for multidisciplinary teams
JS for multidisciplinary teamsFrancisco Ferreira
 
Faceted Classification System in Libraries
Faceted Classification System in LibrariesFaceted Classification System in Libraries
Faceted Classification System in LibrariesLaura Loveday Maury
 
Kevin baird follett priorities
Kevin baird follett prioritiesKevin baird follett priorities
Kevin baird follett prioritiesFollettLearning
 
Software Engineering Thailand: Programming with Scala
Software Engineering Thailand: Programming with ScalaSoftware Engineering Thailand: Programming with Scala
Software Engineering Thailand: Programming with ScalaBrian Topping
 
Ontology Engineering: Ontology evaluation
Ontology Engineering: Ontology evaluationOntology Engineering: Ontology evaluation
Ontology Engineering: Ontology evaluationGuus Schreiber
 
Issues and activities in authoring ontologies
Issues and activities in authoring ontologiesIssues and activities in authoring ontologies
Issues and activities in authoring ontologiesrobertstevens65
 
Human Machine Collaboration for Improved Analytical Processes
Human Machine Collaboration for Improved Analytical ProcessesHuman Machine Collaboration for Improved Analytical Processes
Human Machine Collaboration for Improved Analytical ProcessesTony Ojeda
 

Similar to Guide to creating your first ontology (20)

OntologyEngineering.ppt
OntologyEngineering.pptOntologyEngineering.ppt
OntologyEngineering.ppt
 
Ontology Engineering for the Semantic Web and beyond
Ontology Engineering for the Semantic Web and beyondOntology Engineering for the Semantic Web and beyond
Ontology Engineering for the Semantic Web and beyond
 
Ontology engineering
Ontology engineering Ontology engineering
Ontology engineering
 
OOP Inheritance
OOP InheritanceOOP Inheritance
OOP Inheritance
 
Categorization describing resource classes and types
Categorization describing resource classes and typesCategorization describing resource classes and types
Categorization describing resource classes and types
 
Open hpi semweb-06-part3
Open hpi semweb-06-part3Open hpi semweb-06-part3
Open hpi semweb-06-part3
 
Ontology dojo presentation eia 18 workshop take away
Ontology dojo presentation eia 18 workshop take awayOntology dojo presentation eia 18 workshop take away
Ontology dojo presentation eia 18 workshop take away
 
Realizing the Full Potential of Taxonomies by Branka Kosovac
Realizing the Full Potential of Taxonomies by Branka KosovacRealizing the Full Potential of Taxonomies by Branka Kosovac
Realizing the Full Potential of Taxonomies by Branka Kosovac
 
OCP Java (OCPJP) 8 Exam Quick Reference Card
OCP Java (OCPJP) 8 Exam Quick Reference CardOCP Java (OCPJP) 8 Exam Quick Reference Card
OCP Java (OCPJP) 8 Exam Quick Reference Card
 
Java programming -Object-Oriented Thinking- Inheritance
Java programming -Object-Oriented Thinking- InheritanceJava programming -Object-Oriented Thinking- Inheritance
Java programming -Object-Oriented Thinking- Inheritance
 
From Intermediate to Advanced - Taking Vocabulary Skills to the Next Level
From Intermediate to Advanced -  Taking Vocabulary Skills to the Next LevelFrom Intermediate to Advanced -  Taking Vocabulary Skills to the Next Level
From Intermediate to Advanced - Taking Vocabulary Skills to the Next Level
 
From Intermediate to Advanced - Taking Vocabulary Skills to the Next Level
From Intermediate to Advanced -  Taking Vocabulary Skills to the Next Level From Intermediate to Advanced -  Taking Vocabulary Skills to the Next Level
From Intermediate to Advanced - Taking Vocabulary Skills to the Next Level
 
JS for multidisciplinary teams
JS for multidisciplinary teamsJS for multidisciplinary teams
JS for multidisciplinary teams
 
Faceted Classification System in Libraries
Faceted Classification System in LibrariesFaceted Classification System in Libraries
Faceted Classification System in Libraries
 
Kevin baird follett priorities
Kevin baird follett prioritiesKevin baird follett priorities
Kevin baird follett priorities
 
Software Engineering Thailand: Programming with Scala
Software Engineering Thailand: Programming with ScalaSoftware Engineering Thailand: Programming with Scala
Software Engineering Thailand: Programming with Scala
 
Ontology Engineering: Ontology evaluation
Ontology Engineering: Ontology evaluationOntology Engineering: Ontology evaluation
Ontology Engineering: Ontology evaluation
 
Kotlin OOP Concepts
Kotlin OOP ConceptsKotlin OOP Concepts
Kotlin OOP Concepts
 
Issues and activities in authoring ontologies
Issues and activities in authoring ontologiesIssues and activities in authoring ontologies
Issues and activities in authoring ontologies
 
Human Machine Collaboration for Improved Analytical Processes
Human Machine Collaboration for Improved Analytical ProcessesHuman Machine Collaboration for Improved Analytical Processes
Human Machine Collaboration for Improved Analytical Processes
 

Recently uploaded

Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfngoud9212
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 

Recently uploaded (20)

Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdf
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 

Guide to creating your first ontology

  • 1. Ontology development 101: a guide to creating your first ontology by Natalya F. Noy & Deborah L. McGuinness M0261111 陳冠廷 National Changhua University of Education Department of Information Management
  • 2. Definition of ontology “Explicit formal specifications of the terms in the domain and relations among them.”
  • 3. Who want to develop an ontology? Why? 1. To share common understanding of the structure of information among people or software agents 2. To enable reuse of domain knowledge 3. To make domain assumptions explicit 4. To separate domain knowledge from the operational knowledge 5. To analyze domain knowledge
  • 4. What is in an ontology? • An ontology is a formal explicit description of concepts in a domain of discourse • It contains ▫ Classes (concept) ▫ Slots (properties or roles) ▫ Facets (role restrictions) ▫ Instances
  • 5.
  • 6. Products of Apple iPhone iPhone iPad iPhone 2 iPhone 3 iPhone 4
  • 7. Products of Apple iPhone iPhone iPad iPhone 2 iPhone 3 iPhone 4
  • 8. Developing an ontology includes • Define classes • Arrange the classes in a taxonomic hierarchy • Define slots • Fill the values of the slots for instances
  • 9. A Simple Knowledge-Engineering Methodology • There is no one correct way to model a domain • Ontology development is necessarily an iterative process • Concepts in the ontology should be close to objects(nouns) and relationship(verbs) in your domain.
  • 10. 1 2 3 Determine the domain and scope of the ontology Consider reusing existing ontologies Enumerate important terms in the ontology
  • 11. 4 5 6 7 Define the classes and the class hierarchy Define the properties of classes-slots Define the facets of the slots Create instances
  • 12. 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?
  • 13. Determine the domain and scope of the ontology (cont.) Competency questions (Gruninger & Fox 1995) • 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?
  • 14. Consider reusing existing ontologies • Ontolingua ontology library (www.ksl.stanford.edu/software/ontolingua) • DAML ontology library (www.daml.org/ontologies) • UNSPSC (www.unspsc.org) • RosettaNet (www.rosettanet.org) • DMOZ (www.dmoz.org)
  • 15. Enumerate important terms in the ontology • Important wine-related terms will include ▫ Wine ▫ Grape ▫ Winery ▫ Location ▫ Color ▫ Flavor ▫ Body ▫ Sugar content
  • 16. Define the classes and the class hierarchy • There are several possible approaches in developing a class hierarchy (Uschold and Gruninger 1996) ▫ Top-down ▫ Bottom-up ▫ Combination
  • 17. Define the classes and the class hierarchy (cont.) If a class A is a superclass of class B, then every instance of class B is also an instance of A.
  • 18. Define the properties of classes-slots
  • 19. Define the facets of the slots • Slots can have different facets describing the value type, allow values, the number of the values(cardinality), and other features of the value the slot can take.
  • 20. 6 Define the facets of the slots (cont.) • String • Number (Integer) • Boolean • Enumerated (Symbol) • Instance
  • 21. 6 Define the facets of the slots (cont.) Winery produces Wine Domain Range
  • 22. 7 Create Instances • Defining an individual instance of a class requires ▫ Choosing a class ▫ Creating an individual instance of that class ▫ Filling in the slot values
  • 24. Defining classes and a class hierarchy 1. Ensuring that the class hierarchy is correct 2. Analyzing siblings in a class hierarchy 3. Multiple inheritance 4. When to introduce a new class 5. A new class or a property value 6. An instance or a class 7. Limiting the scope 8. Disjoint subclasses
  • 25. Defining classes and a class hierarchy (cont.) 1. Ensuring that the class hierarchy is correct ▫ An “is-a” relation ▫ A single wine is not a subclass of all wines ▫ Transitivity of the hierarchical relations ▫ Evolution of a class hierarchy ▫ Classes and their names ▫ Avoiding class cycles A B C is-a is-a is-a
  • 26. 鳳梨酥 冬瓜餡 鳳梨酥 土鳳梨酥 is-a
  • 27. Defining classes and a class hierarchy (cont.) 2. Analyzing siblings in a class hierarchy ▫ Siblings in a class hierarchy ▫ How many is too many and how few are too few?
  • 28.
  • 29. Defining classes and a class hierarchy (cont.) 3. Multiple inheritance 4. When to introduce a new class (or not) ▫ have additional properties that the superclass does not have ▫ restrictions different from those of the superclass ▫ participate in different relationships than the superclasses
  • 30. Defining classes and a class hierarchy (cont.) 5. A new class or a property value? 6. An instance or a class? 7. Limiting the scope 8. Disjoint subclasses
  • 31. Define properties-more details • Inverse slots • Default values
  • 32. What’s in a name? • Capitalization and delimiters • Singular or plural • Prefix and suffix conventions ▫ has- ▫ -of • Other naming considerations
  • 33. Conclusion • This guide described an ontology-development methodology for declarative frame-based systems. • This guide listed the steps in the ontology-development process. • “There is no single correct ontology for any domain” • “The proof is in the pudding.”
  • 34. Q & A

Editor's Notes

  1. 2001年 3500多次
  2. 本體論的定義:一個領域之中對分類的明確有形式的規則與他們之間的關係 從人工智慧的實驗室移動到了領域專家的桌面上 她現在再www上可以說是滿普遍的 Yahoo large taxonomies categorizing web sites Amazon categorization of products for sale and their features W3C發展了RDF (Resource Description Framework) 把知識包裝能網頁能傳遞的格式,並且可以讓電子代理人用來查詢資料。 現在各個領域也開始發展各自領域的本體論 裡面提到的有medicine, general-purpose, products and services 我自己看到的國內的則有… 本體論基本上在做的就是讓同一領域中的研究者可以用相同的字彙來互相交流 並且這種字彙同時也可以轉換成電腦可以理解的形式。其中包含了這個領域的主要概念,與概念與概念之間的關係。
  3. 想要在這個資訊架構中和其他人或軟體代理人分享共同的知識的人←最普遍 如果每個網站都使用相同的本體論,那使用者的代理人就可以交互的收集資料並進行搜尋 當使用者進行查詢時就能給出適合的結果 想要重新使用某個領域知識的人 如果你想某個領域的知識,就可以考慮使用現存的本體論 若覺得不好,再找其他更細節的來加以補強 甚至到最後可以擁有自己的版本 想要讓領域中的假設更加明確的人 有些人沒有寫程式的基礎,但是透過本體論,她也可以很清楚的知道我們現在到底在幹嘛 可以透過本體論讓假設更加的明確 想要把目前的知識與領域知識分開的人 現實世界中有很多的知識邏輯都是很類似的 像是…可能會設計一套XXX的本體論,並且套上某某邏輯 但是有時候相同的邏輯之下,你換了另外一套的本體論,也還是可行的 想要分析某個領域中知識的人 當要重新使用或是擴展以存在的本體論時,能對舊有的本體論分類做有系統的分析式非常有價值的。
  4. 本體論是對於一個論述的領域中的概念的明確描述 其中包含 Class簡單的說也就是概念 概念的屬性 屬性的限制 實體
  5. 這本guide裡面是以葡萄酒為例子 但是我這邊舉iphone當例子好了 Iphone這個Class代表所有種類的iphone 但是特別的iphone就是這個class下面的instance 你現在手上要是有iphone,不管是1 2 3 4 5代,後面有沒有+S 那是instance,iphone這個class的instance 那一個class可能會有subclass 就是說iphone底下可以開始分1代 2代 3代 3s之類的 Slot就是在講class和instance的properties Iphone5的Properties可能包括 她生產的公司是apple,螢幕尺寸是幾吋,重量多少,顏色是啥 那這邊有講到slot也可以存在雙向的關係 有produce和maker之分
  6. 這本guide裡面是以葡萄酒為例子 但是我這邊舉iphone當例子好了 Iphone這個Class代表所有種類的iphone 但是特別的iphone就是這個class下面的instance 你現在手上要是有iphone,不管是1 2 3 4 5代,後面有沒有+S 那是instance,iphone這個class的instance 那一個class可能會有subclass 就是說iphone底下可以開始分1代 2代 3代 3s之類的 Slot就是在講class和instance的properties Iphone5的Properties可能包括 她生產的公司是apple,螢幕尺寸是幾吋,重量多少,顏色是啥 那這邊有講到slot也可以存在雙向的關係 有produce和maker之分
  7. 這本guide裡面是以葡萄酒為例子 但是我這邊舉iphone當例子好了 Iphone這個Class代表所有種類的iphone 但是特別的iphone就是這個class下面的instance 你現在手上要是有iphone,不管是1 2 3 4 5代,後面有沒有+S 那是instance,iphone這個class的instance 那一個class可能會有subclass 就是說iphone底下可以開始分1代 2代 3代 3s之類的 Slot就是在講class和instance的properties Iphone5的Properties可能包括 她生產的公司是apple,螢幕尺寸是幾吋,重量多少,顏色是啥 那這邊有講到slot也可以存在雙向的關係 有produce和maker之分
  8. 接下來就是要講知識工程的一個簡單的建造方法 其實建構本體論並沒有一個最正確的方式
  9. 這個guide建議我們先從定義概念的領域與範圍開始。 甚麼叫做定義這個領域和範圍?
  10. 這個guide建議我們先從定義概念的領域與範圍開始。
  11. 這個guide建議我們先從定義概念的領域與範圍開始。 甚麼叫做定義這個領域和範圍? . . . . 當然這些只是一小部分,在建構本體論的同時可能還會發現更多的問題 不過這樣可以幫助我們來把本體論的領域與範圍縮小 變得更加明確 這個guide就假設他們建立了food和wine的本體論 然後來看看食物和酒如何配對,以提供最好的套餐給使用者 對象也很重要,如果這個本體論是用來給餐廳裡的消費者來參考的話 本體論中應該也要另外包含零售價格 如果酒是要出售給酒窖的買家,應該就要包含中盤商的價格與貨品的數量等等
  12. 經由這些各式各樣的問題 可以讓本體論變得更加的嚴謹 以剛剛所提到的那些問題 我們就可以知道wine這個本體論所適合的人事時地物是啥了
  13. 考慮使用現存的本體論 就是要我們撿現成的,人家做好好的,幹嘛不用呢?
  14. 我們可以把分類都列舉出來,這可以幫助我們和使用者有更深入的了解 和wine有關係的重要屬性為 食物有關的又不一樣了 她也有說全面性的列出所有可能的分類是很重要的 而且不用擔心本體論的概念、關係或是其他屬性之間是否會重疊
  15. 只有一個class並沒辦法回答我們一開始連續問得那麼多個問題 所以我們必須來定義class的屬性 有甚麼東西可以成為屬性呢? 成固定的屬性 本來的特質 外在的屬性 我們給他的 還有個體和個體之間的關係像是maker
  16. 定義produce這個屬性可以和具有那些classes的instance相連
  17. 如果在定義slots的時候包含了wine和它的subclass就把subclass除掉 這邊有提到如果酒廠有生產很多的酒 紅酒白酒 都把他歸類成酒就好 像這類關係的slot 他的前後最好都要是一般化的
  18. Iphone iphone 5s
  19. Iphone iphone 5s
  20. 這個部分可以讓我們回顧我們到目前為止所創建的本體論是否存在著某些問題 雖然這個guide口口聲聲都說了並沒有單一正確建構本體論的辦法 但是它還是很雞婆的希望我們回顧一下
  21. Classes and their names 可能會有很多同義詞 但是那沒關係 要記住class的名稱是用來表示領域的概念,而不是用來註解領域的文字而已
  22. 在階層中的兄弟節點大致上來說是要在同一階層的。 2~12 1個會不會是modeling上有問題? 13個以上是不是能另外分類? 拿項目符號來說
  23. 在階層中的兄弟節點大致上來說是要在同一階層的。 2~12 1個會不會是modeling上有問題? 13個以上是不是能另外分類? 拿項目符號來說 新增class可以因為想分辨而分辨 也可以依照現實世界當中進行分類就好。
  24. If the concepts with different slot values become restrictions for different slots in other classes, then we should create a new class for the distinction. Otherwise, we represent the distinction in a slot value. If a distinction is important in the domain and we think of the objects with different values for the distinction as different kinds of objects, then we should create a new class for the distinction. A class to which an individual instance belongs should not change often. 以解剖學為例 第一根肋骨 肋骨class 6.最特別的就是instance 依照自然的分類階層,也是可以有Abstract型態的class 不需要連餐巾紙都知道 不相交
  25. 有些規範 可以幫助本體論更易於了解 並避免犯錯 獎大小寫還有間隔,像是Java就有規定Class是怎樣,然後XXX是怎樣 單複數都沒關係,但是記得要一致就好 不要用到保留字 然後要小心使用縮寫。