TBC is a tool to develop Semantic Web ontologies and semantic applications in RDF
Walk through the help system and Ch 3. of the tutorial
Help in TopBraidComposer
Subversion (SVN)
Introduction to Subversion (SVN)
an open source version control system
allows users to keep track of changes made over time to any type of electronic data
typical uses are versioning source code, web pages or design documents
Check that SVN is Installed in TBC
Window Menu
Show View
Other
Should See the SVN Repository Folder
If not, install SVN plugin
Help Menu
Software Updates
Find and Install
Click on “…new features”
Check “subclipse update site” box
Click on “new remote site”
Type URL of the SVN plugin and follow instructions
Create Project from SVN Repository
Window Menu
Show View
Other
Select SVN Repository
A view titled “SVN Repository” should have appeared.
Right click and select:
New
Repository Location
Type the following URL: https://ont.googlecode.com/svn/trunk/ and click on Finish
Type the following URL: https://ont.googlecode.com/svn/trunk/ and click on Finish
User: mmidemo
Password: j6x4e4b8
Right click on “ont-coastal” folder
Choose Checkout
“Accept permanently”
Checkout and create a new project, for example, “ont-coastal”
You should have a project with the ontologies available
SVN Operations
Overview
Goals
Introduction to Ontologies
Ontology Components and Practical Exercise
Advanced Ontology Concepts
Mappings
Restrictions and Description Logic
SPARQL and Rules
MMI Tools
Ontology Engineering
Interoperability Demonstration
Discussions
Overview
Goals
Introduction to Ontologies
Ontology Artifacts and Practical Exercise
Querying Ontologies with SPARQL
Advanced Ontology Concepts
SKOS, Thesauri, and VINE
Interoperability Demonstration
Discussions
Goals
Gain an understanding of controlled vocabularies (CVs) and ontologies
Hands on experience developing ontologies
Learn enough to write proposal to go further
Have fun
Introduction to Ontologies (20 min) Semantic Interoperability Problems
Interoperability
Diversity
Making Connections
Confusion
What happens if we are not semantically interoperable ?
We cannot find all the data that we are seeking.
p. 41 of Workshop 1 report: “Terminology used to describe similar data can vary between specialties or regions, which can complicate data searches and data integration.”
We get too many results and they are hard to classify.
Information Overload
Can’t find all the data
Semantic Interoperability Problem: Can’t find all the data
Information Overload
Semantic Interoperability Problem: Information Overload
Agreements on content help solve semantic interoperability problems. Ontologies could be a mechanism
Ontologies facilitate agreement on:
controlled vocabularies
mappings
categories
knowledge of a domain
Controlled Vocabularies (CVs) What are they?
a set of restricted words, used by an information community when describing resources or discovering data;
prevents misspellings and avoids the use of arbitrary, duplicative, or confusing words that cause inconsistencies when cataloging or searching data.
For example:
Glossary, dictionary
Classifications and categories
Relationship categories
Examples of CVs in Use SeaDataNet - http://www.seadatanet.org
Examples of CVs in Use: Consortium of Universities for the Advancement of Hydrologic Science (CUAHSI) http://www.cuahsi.org
Examples of CVs in Use: OGC URN Resolver
It is not always possible to agree
It is not always possible to agree
on one and only one vocabulary
Introduction to Ontologies
In computer science -- an explicit and formal specification of mental abstractions, that conforms to a community agreement about a domain and design for a specific purpose (Gruber, 1993).
Representation, in a machine-readable language, of terms important to a domain of interest (e.g., coastal management). An ontology contains:
classes (concepts),
individuals (members of the classes), and
properties (relationships between individuals)
Ontologies facilitate agreement on:
controlled vocabularies
mappings
categories
knowledge of a domain
Interoperability
Ontologies facilitate agreement on:
controlled vocabularies
mappings
categories (is a type of mapping -:> )
knowledge of a domain
Example Oregon Atlas
Example Oregon Atlas
Ontologies facilitate agreement on:
controlled vocabularies
mappings
categories
knowledge of a domain
Ontologies Good for Expressing Formally:
controlled vocabularies
mappings
categories
knowledge of a domain
Formal RDF Resource Description Framework
RDF
RDF Simple Graph Model
URI
RDF Serialization
RDF/XML
Turtle
N3
N-Triple
...
Ontologies .. good for expressing formally
controlled vocabularies
mappings
categories
knowledge of a domain
Ontology Web Language IOWL) (OWL)
RDF/XML is the syntax
is a representation language for ontologies
extends RDFS by allowing representation of more complex relationships and more precise constraints on classes and properties
uses URIs
is the “lingua franca” of the Semantic Web
BREAK !
Next: SeaDataNet use case (Roy Lowry)
SeaDataNet Ontology Use Case
Roy Lowry
British Oceanographic Data Centre
Summary
What is SeaDataNet?
Some SeaDataNet semantic issues
What has SeaDataNet done?
What is SeaDataNet going to do?
Is SeaDataNet relevant to CAI?
What is SeaDataNet?
SeaDataNet in a Nutshell
Combine over 40 oceanographic data centres across Europe into a single interoperable data system
Approach is to adopt established standards and technologies wherever possible
Two phases:
One brings 12 centres together with centralised metadata and distributed data as files. Due fully operational in autumn 2008 (beta next February)
Two introduces data virtualisation, aggregation, cutting and 30 more centres. Due in 2010
Project is well on its way up the interoperability operational implementation curve
SeaDataNet Semantic Issues
The major problem facing the project is heterogeneous legacy content
Each had its own independently developed controlled vocabularies
These vocabularies
Covered overlapping domains
Said similar things in different ways
Provided a shining example of how NOT to manage vocabularies
Brief Diversion
Vocabularies can have two types of governance
Content governance
Mechanism for making decisions on vocabulary population
Expected deliverables include:
Vocabulary standards and internal consistency
Change on a timescale matching the needs of the user community
Terms with definitions!!!
Technical governance
Vocabulary storage, maintenance and serving
Expected deliverables include:
Convenient access to up to date vocabularies
Clear, rigorous vocabulary versioning
Version history through audit trails
Maintenance that doesn’t break user systems
SeaDataNet Semantic Issues
Vocabulary content governance
Done by individuals who were often inadequately qualified to do the job
Metadata entry form with an ‘Add to Vocabulary’ button used by students
Vocabulary technical governance
Scattered files on servers or inaccessible database tables
Multiple data models (e.g. some with abbreviations, some without)
No versioning
Vocabularies updated by destructive overwrites
Harmonisation required for related vocabularies
Within centralised metadata
Between partner local systems and centralised metadata
What has SeaDataNet Done?
Established content governance
Within SeaDataNet (TTT e-mail list)
Further afield (SeaVoX e-mail list)
Established technical governance
Adopted the NERC DataGrid Vocabulary Server
Heavily defended Oracle back end
Automated version and audit trail management
Web Service API front end plus clients e.g. http://vocab.ndg.nerc.ac.uk/client/vocabServer.jsp
Currently serving out 75 lists
Established a Mapping Infrastructure
List entries connected by SKOS RDF triples
Operational mappings between parameter vocabularies (GCMD science keywords, CF Standard Names)
What is SeaDataNet Going To Do?
Harmonise centralised metadata vocabularies or map if too hard
Map centralised vocabularies to partner system vocabularies
Build metadata crosswalks and generators (e.g. from CF) that include semantics (Use case 1)
Implement ‘Smart Discovery’ for legacy plaintext. E,g. search for pigment, find chlorophyll (Use case 2)
Establish URLs to represent vocabularies and individual entries delivering XML – probably SKOS – documents
Extend mapping efforts to other areas such as ‘devices’
Release a much improved Vocabulary Server API (mid-August)
Is SeaDataNet Relevant to CAI?
This workshop is about building a coastal atlas ontology that brings together semantic resources that say similar things in different ways
The vocabulary entry semantic content may be different from oceanographic parameters, but the problem is essentially the same
If it works for SeaDataNet it will probably work for the CAI community
More important – if it didn’t work for SeaDataNet then it probably won’t work for CAI
Is SeaDataNet Relevant to CAI?
What has worked for SeaDataNet:
The NERC DataGrid Vocabulary Server
Content governance through a MODERATED e-mail list (also works pretty well for CF Standard Names)
Representing vocabulary terms by URNs in metadata documents
What I believe will work in the next 12 months:
Semantic interoperability through mappings
The conceptual framework of RDF in general and SKOS in particular
21st Century tooling
Is SeaDataNet Relevant to CAI?
What hasn’t worked for SeaDataNet:
Weak content governance
Examples
Terms without definitions
Vocabularies without strict entity definitions populated by mixed entities e.g.
helicopter = class
RRS Discovery = instance
Vocabularies without managed deprecation
Poor technical governance
Example
A vocabulary served by:
Dynamic web page from database
Static HTML page
ASCII file as e-mail attachment
Each having a different number of entries….
That’s All Folks!
Thank you for your attention
Any questions?
Morals
Always provide definitions for your terms
If you are going to use vocabularies to build an ontology make sure that they are properly governed
Welcome back
Recap
Define an ontology
Play with concepts
Details on components of ontologies
Ontologies .. good for expressing formally
controlled vocabularies
mappings
categories
knowledge of a domain
Ontologies basic definition
capturing the knowledge of a domain, including simple controlled vocabularies
expressing hierarchies of concepts
interrelating vocabularies via formal mappings
Components of an Ontology
Classes
Individuals
Properties
But first... what is a concept ?
What is a Concept ? Graph of Concepts
Concept Maps
Warming up Graph of Concepts
Concept Maps (10 min)
Open CMAP tools
Create a concept map about what you would expect to find on a Recreational Atlas Web site
Concept Maps (5 min)
In the middle of the exercise - ask about the treatment of nouns and verbs
Classes
Classes define concepts in a domain
Nouns, boxes in previous exercise
Classes are organized in hierarchies:
Example: Habitat is super class of Wetland
Classes are sets that contain individuals
Individuals
Individuals represent real objects in the domain in which we are interested.
They are the members of a class.
Ontology Example
Classes - subclasses
Individuals
Properties
Properties are relationships (loosely, verbs) between two individuals.
lines in previous exercise
2 types:
Object Properties link an individual to an individual
Datatype properties link an individual to a Literal (String, integer, etc..). Defined as XML Schema datatypes.
Object Properties
Domain and Range
Datatype Properties
Ontology Example
Viewing a Simple Ontology
View an example ontology containing the Elkhorn Slough National Estuarine Research Reserve and the Malheur National Wildlife Refuge
Open Ontology and Explore Classes
View Classes tab
Note icons on upper right
create subclass
create sibling class
delete class
menu triangle with different options including viewing the hierarchy as starting with class “thing”. This latter menu option is important, since this is not the default of TopBraid, but is a very useful way to view a class hierarchy.
Explore Classes
Double click on class “Wetland” (subclass of “GeographicFeature”) in wetlands.owl
view class form, note annotations and axioms; can drag and drop annotation properties onto the form
can create subclasses by clicking on the name of the (super) class in the view class diagram
see other classes and their relationships to (properties) this class
view class diagram
view instances tab, see list of instances of this class
view import tab (this is where the namespaces of imported ontologies would appear)
view domain tab
view SPARQL tab Queries on your class(es)
Create Your Own Classes
Explore Individuals
View instances tab
Note the icons in the upper right. You can create (choosing the class to which it will belong, first) or delete an instance, or use the instance menu to accomplish such tasks as exporting the instances to a spreadsheet.
Double click on the instance “ElkhornSloughNERR”
View the resource form (just above the instances tab).
Note the name of the instance annotations, properties (especially note that the property list for the instance will include any properties identified for the class of which that instance is a member)
Create Individuals
Properties
Properties are relationships (loosely, verbs) between two individuals.
lines in previous exercise
2 types:
Object Properties link an individual to an individual
Datatype properties link an individual to a Literal (String, integer, etc..). Defined as XML Schema datatypes.
Explore Properties
Double click on the property “hasActivity”
View properties tab (on right)
Note icons for creating property, deleting property, menu triangle for creating specific types of properties (object, data type and annotation properties).
View properties form
Note that each property has a name, may have annotations, and may have axioms (e.g., domain, range)
think of domain as the class that has this property (e.g., “Wetland”) and range as the valid “value” for the property (e.g., “Activity”)
Note that each property can also be a(n):
Subproperty of (properties can be hierarchical)
Inverse of
at the bottom, you should also see what type of property it is (object, datatype)
Explore Properties
View properties form (continued)
Note menus on top right on the property form, that can:
add widget for property
show widgets for all properties with matching domains,
arrange widgets in 2 columns
also, an inverted triangle menu with lots of options
E.g., will find the property name on Google, Wikipedia
E.g., will find all the usages of the property in your workspace, etc.)
Create Properties
Exercise
(it should be ~ 2:00 PM by now)
Hands on exercise TBC
Exploring TBC (1:40 - 2:30)
Follow the guide: TBC Getting-Started-Guide
Let’s all create a simple ontology ... follow the screen instructions
Atlas Interoperability Exercise
For any interoperability endeavor the first thing that should happen is getting the requirements right !
Atlas Interoperability
Use Case and Proposed User Interface
Atlas OntWeb
Note...
Q: Where is the data coming from ?
A: Distributed sources, which are simulated by each ontology you are creating.
Very different from traditional databases.
Process
Create a simple ontology that captures topics of interest of persons
Use concepts from the CMAP exercise, if possible
Create at least:
3 Classes (on any level)
1 Object Property - define domain and range
2 Datatypes Properties - define domain and range
2 Individuals for class Person, and 4 for each of the other classes you create
Add properties and values to individuals. e.g. luishasInterestYOGA
For example, include as topics recreational concepts that you would expect to find on an atlas
Have fun
If problems occur, use help system or TBC tutorial. If more problems occur, raise your hand
Make your person-topic ontology (XYZ) interoperable with the FOAF ontology
Interoperability
We will make your person-topic ontology (XYZ) interoperable with the FOAF ontology
Experts are now “Atlases”
Map with Person Upper Level Ontology (foaf.owl)
Discussion
Did you need to do any changes to your ontology ?
We are presenting values of instances in the web interface, but this is not always the case.
Discussion
You are a FOAF person because you created a statement that said that:
Youfoaf:topic_of_interestTopic
AND
foaf:topic_of_interest has domain foaf:person
Test it !
Make your person class not
a subclass of foaf:Person
Run the inference
engine
End Day 1
Person (local name) with HasName property – easier with semantically neutral key
American vs. British English? – HasLabel, HasLabel, HasLabel, or UKName, USName
Reminder: RDF Property is highest level, then OWL added new restrictions (ObjectProperty for individual-to-individual and DataProperty for linking integers, strings to individuals)
We need to create an upper ontology
Extract all your semantics into an ontology, build an upper ontology
Examples of CVs in Use: Consortium of Universities for the Advancement of Hydrologic Science (CUAHSI) http://www.cuahsi.org
Day 2
Wednesday Advanced Fun
Recap from Yesterday
We had an introduction to ontologies
We had a hands on experience on linking “topics of interest” ontologies to an upper level ontology.
Overview
Goals
Introduction to Ontologies
Ontology Components and Practical Exercise
Advanced Ontology Concepts
Mappings
Restrictions and Description Logic
SPARQL and Rules
MMI Tools
Ontology Engineering
Interoperability Demonstration
Discussions
Mapping ala SKOS
SKOS
provides a standardized way of representing KOS, such as thesauri, classification schemes, and taxonomies