Presentation is loading. Please wait.

Presentation is loading. Please wait.

Craigiebuckler, Aberdeen, AB15 8QH, UK Protégé training Gary Polhill.

Similar presentations


Presentation on theme: "Craigiebuckler, Aberdeen, AB15 8QH, UK Protégé training Gary Polhill."— Presentation transcript:

1 Craigiebuckler, Aberdeen, AB15 8QH, UK Protégé training Gary Polhill

2 Overview Obtaining, installing & community Creating and loading ontologies Creating classes, properties, restrictions & individuals Using the reasoner Diagramming

3 Overview Obtaining, installing & community Creating and loading ontologies Creating classes, properties, restrictions & individuals Using the reasoner Diagramming

4 Obtaining Protégé [Ontology development tool] –http://protege.stanford.edu/download/download.html –Version 3.1 beta Graphviz [Diagram support tool] –http://www.graphviz.org/Download.php –Version 2.2.1 Racer [DL reasoner] –http://www.racer-systems.com/products/download/education.phtml –Version 1-8-0 –Version 1-7-24?

5 Licences (Protégé and Graphviz) Protégé –Mozilla Public Licence http://www.mozilla.org/MPL/ –You are licensed to “use, reproduce, modify, display, perform, sublicense, and distribute” it Graphviz –Common Public Licence http://www.graphviz.org/Download.php –You are licensed to “reproduce, prepare derivative works of, publicly display, publicly perform, distribute and sublicense” it

6 Racer licence Racer 1-8-0 –Educational proprietary licence http://www.racer-systems.com/products/download/edu-license.phtml –Requires registration –Install and use one copy on one computer –Limited time (180 days, possibly negotiable…) 990EUR cost for single workstation non-network licence –In publications for which Racer is used, name: RacerPro Software Racer Systems GmbH & Co. KG -- licensor http://www.racer-systems.com/ -- licensor website Racer 1-7-24 –Not available any more, and not supported –Non-commercial licence

7 Possible alternative to Racer: FaCT FaCT –http://www.cs.man.ac.uk/~horrocks/FaCT/ Released under GNU GPL Lisp based Description logic reasoner for SHF & SHIQ Requires Tomcat to talk to Protégé –Use FaCT DIG Servlet version Doesn’t talk to Protégé very well! –Some loss of functionality

8 Installation of Protégé Run the install_protege.exe script Follow the installation wizard Accept all default options, except: Choose Components Everything Basic+OWL might be OK (not tested)

9 Installation of Graphviz & Racer Graphviz –Run graphviz-2.2.1.exe –Accept all the default options –Never need to run it Racer 1.7.24 –Doesn’t really need installing… –Extract the executable from the zip file racer-1-7-24-windows.zip –Copy it to the Desktop … or somewhere you will remember –Run it when you need it

10 Racer: Exercise Check that you can run Racer –Copy it from the CD to the computer You need to have write permission to the folder that Racer lives in –Double click it to run Port number for HTTP service Exit by closing the window

11 Running Protégé Start > Programs > Protege_3.1_beta > Protege Command tool interface opens with diagnostic messages GUI opens with utility to open recent projects or create a new one

12 Protégé community Various mailing lists –http://protege.stanford.edu/community/lists.html –protege.discussion/general High volume, for general Protégé usage queries, not OWL –protege.owl High volume, for OWL specific Protégé usage queries –protege.beta Low volume, announces new beta releases of Protégé –protege.users/announce Low volume, announces new full releases and conferences, etc.

13 Overview Obtaining, installing & community Creating and loading ontologies Creating classes, properties, restrictions & individuals Using the reasoner Diagramming

14 Create a new project wizard OWL Files OWL DL 12 34 Create from existing sources

15 Project components A Protégé project has two parts –Project file (with.pprj suffix) Contains details about the settings for the use of Protégé Can be version specific (i.e. a.pprj file for version 3.1 may not open in version 3.0 and vice versa) –OWL file (with.owl suffix) The ontology You can create a Protégé project from an existing OWL file by checking the ‘Create from existing sources’ box in step 1

16 Loading an ontology Select recently used projects from window at startup File > Open Project… File > Open Recent Project > project If you tell Windows that.pprj files belong to Protégé –Double click the.pprj file from Explorer

17 Protégé: Exercise Start Protégé Create a new project –Not from an existing source –OWL Files –Don’t import any ontologies –Default namespace –OWL-DL

18 Overview Obtaining, installing & community Creating and loading ontologies Creating classes, properties, restrictions & individuals Using the reasoner Diagramming

19 Working in Protégé Creating anything is called an assertion Think of it as creating some axioms You need to be clear about what each kind of assertion means

20 Creating classes Create Subclass of… Create Sibling Class of… Tools > Quick OWL > Create multiple classes (Wizard) …selected class

21 Classes tab Class name Hierarchy Conditions Disjoints Properties Metadata Comment

22 Classes: Naming Conventions No mandatory conventions… Class names begin with uppercase Separate words in class names using CamelStyle or Using_Underscores Regexp for ASCII characters –[A-Za-z£$_][-A-Za-z0-9£$_.]* Unicode characters can also be used –Edit > Insert Unicode Characters… –Protégé’s default font doesn’t have very many

23 Classes: Meanings Individuals can belong to many classes Classes can have many superclasses Classes are not assumed to be disjoint –You can make them disjoint –By doing so you assert that No individuals belong to classes A and B Subclass means necessary implication –If A and B are classes, and A is a subclass of B you assert that All individuals belonging to A belong to B (…and all individuals not belonging to B don’t belong to A) Note that if B is disjoint with C, then no individual belonging to A can belong to C. AB B A C

24 Classes: Exercise Create the following class hierarchy –Man & Woman should be disjoint

25 Different kinds of property Datatype property –String, Integer, etc. Object property –Relates one class of objects (domain) to another (range) Annotation property –For different kinds of metadata –Can be object or datatype!

26 Creating Properties Properties tab Datatype property Object property Subproperty Annotation datatype and object properties

27 Properties tab (object properties) Property hierarchy Multiple super- properties DomainRange Inverse Property Characteristics Metadata Comment Name

28 Properties tab (datatype property) As per object, except… Datatype properties can’t be symmetric, transitive, or have an inverse You can specify a set of values the property can take Range is a datatype

29 Creating properties from the Classes tab Create new datatype property (domain this class) Create new object property (domain this class) Add this class to domain of existing property

30 Properties: Naming Conventions Again, no strict naming conventions Lower case initial letter Begin with ‘has’ or ‘is’ –Facilitates English Prose Tooltip Generator (see later) –… but not worth it if too awkward Same ASCII regexp as Classes If different classes have a similar property name (e.g. age) –Use class domain in property name if a union domain is not appropriate E.g. if range is a different type hasPersonAge (10, 34, 57), hasHistoryAge (Victorian)

31 Properties: Meanings 1 Domain & Range –Be careful… These do not stipulate restrictions! Any individual asserted or inferred to be on the ‘left hand side’ of the property will be inferred to be a member of the domain class Any individual asserted or inferred to be on the ‘right hand side’ of the property will be inferred to be a member of the range class –Multiple classes for the domain and range are interpreted to be a union class –OWL class expressions can be used for the range of a property (e.g. intersection of two classes) –OWL allows this for domains, too, but not in Protégé Subproperty –If property P is a subproperty of Q, and P(x, y) is asserted or inferred, then Q(x, y) may be asserted or inferred –Datatype properties may not be subproperties of object properties, and vice versa

32 Properties: Meanings 2 Property Characteristics –Inverse If P is the inverse of Q and P(x, y), then Q(x, y) –Symmetric If P is symmetric and P(x, y), then P(y, x) –Transitive If P is transitive and P(x, y) and P(y, z) then P(x, z) A transitive property must have a transitive inverse –Functional Aka feature or single valued property The right hand side may only be one individual If more than one individual is found they are inferred to be the same A transitive property cannot be functional –Inverse functional The left hand side may only be one individual If more than one individual is found they are inferred to be the same An inverse functional property has a functional inverse (and vice versa)

33 Other information about Properties Annotation properties –Metadata –Can be applied to Classes, Properties (datatype or object), and Individuals –Restrictions in OWL-DL Property value must be a literal, URI, or individual Cannot be used in property axioms (e.g. cannot be subproperty or have a subproperty) Cannot have a domain or range Classes as property range –Not possible in OWL-DL – OWL-Full only –A rare requirement

34 Properties: Exercise Create datatype properties –hasAge (integer) –hasSex (“Male” or “Female”) Create object properties –hasAncestor, hasParent, hasMother, hasFather –isAncestorOf, isParentOf, isMotherOf, isFatherOf –hasSpouse, hasHusband, hasWife Ensure property characteristics are appropriately set –Domain and range –Subproperty –Inverse –Transitive, Symmetric, Functional, Inverse Functional

35 Creating Restrictions Select property and create restriction Right click property and select restriction to create Create expression Create restriction on any property

36 Create Restriction Window Property to be restricted Restriction expression tool Type of restriction Restriction expression Keep this guy happy!

37 Different kinds of restriction Quantifier restriction (Object property) –Existential “At least one” “some” “some values from” e.g. (Husband class) ∃ hasWife Woman –Universal “Only” “all values from” e.g. (Person class) ∀ hasFather Man hasValue restriction (Datatype property) –e.g. (Man class) hasSex ∋ “Male” Cardinality restriction (Object property) –Exact cardinality –Minimum cardinality –Maximum cardinality

38 Other kinds of restriction Union classes –e.g. hasDifficultChildren (Toddler ⊔ Teenager) Intersection classes –e.g. hasSingleParent (Parent ⊓ Divorcee) Negation –e.g. Bachelor class: ¬(∃ hasWife Woman) Expressions can have arbitrary complexity –… but probably a good idea to keep it simple Use intermediate classes

39 Restrictions: Meanings 1 A restriction actually defines an anonymous class –When used to describe classes, they define an anonymous superclass Existential restrictions –Beware the Open World Assumption! Only says that at least one of the relationships an individual has is with a member of the specified class … … so the individual could have that relationship also with a member of a different class Universal restrictions –Beware! Only says that all relationships an individual has must be with members of the specific class … … includes individuals who have NO relationship of this kind with ANY individual –Often used with existential restrictions (closure axiom)

40 Restrictions: Meanings 2 hasValue restrictions –Can be used with object properties to point to a specific individual e.g. hasAncestor ∋ Adam OWL-Full? Cardinality restrictions –Pertain to the number of relationships an individual must participate in –Relies on counting distinct individuals OWL does not make the Unique Name Assumption … but Racer does! –Potentially, individuals will be inferred to be the same

41 Restrictions: Exercise Man and Woman Classes –hasSex ∋ “Male”, hasSex ∋ “Female” respectively Spouse class –Has at least one spouse Parent class –Is parent of at least one person Father class –Is father of at least one person Husband class –Has wife at least one woman Similarly for Mother and Wife classes Try out the English Prose Tooltip Generator –Move the mouse over one of the classes you have given restrictions to in the class hierarchy

42 Primitive and Defined Classes Primitive classes (aka partial classes) –Have necessary conditions only If an individual is a member of the class it must satisfy these conditions NOT if an individual satisfies these conditions then it is a member of the class –Necessary conditions are conjunctive Defined classes (aka complete classes) –Also have necessary and sufficient conditions These allow class membership to be inferred –Multiple sets of necessary and sufficient conditions are permitted (disjunctive)

43 Creating Defined Classes 1 Necessary conditions moved to Necessary and Sufficient slot Select “Convert to defined class” Right-click the class to be defined

44 Creating Defined Classes 2 You can also click and drag necessary conditions to the necessary and sufficient slot Create multiple necessary and sufficient conditions by right-clicking the “NECESSARY & SUFFICIENT” slot header Right click Create new necessary and sufficient block

45 Defined classes: Exercise Decide which classes created so far can be converted to defined classes Convert them

46 Creating Individuals Forms tab –Allows you to edit the form widgets used to enter the individuals’ data Individuals tab –Used to enter the data –Select the class on to create an individual of from the hierarchy on the left hand pane –Press the create individual icon (purple diamond with a plus sign) from the centre pane –Enter the individual’s data on the right hand pane

47 Creating individuals Select class Click here Enter details

48 Individuals: Exercise Experiment with the Person entry form Create some instances of Person –Try creating instances that will test the inference engine: e.g. Domain and range Functional properties Create an instance of OWL: Thing –Useful to check what happens to it when using reasoner

49 Overview Obtaining, installing & community Creating and loading ontologies Creating classes, properties, restrictions & individuals Using the reasoner Diagramming

50 Three uses for the reasoner Checking the consistency of the ontology Classifying the taxonomy –Uses defined classes to determine new class hierarchy Logically consistent with ontology Classifying individuals –Deciding which classes individuals belong to ONE enhancement request… –WHY?

51 Reasoner prerequisites OWL-DL or OWL-Lite sublanguage Racer needs to be in a writable directory Port numbers configured correctly –Watch out for clashes with other software (unlikely) –Racer can be configured to use different ports on the command line -p -http –This is the one Protégé needs to know about The reasoner does not have to be on the same machine –Can connect to one over the web The reasoner needs to be running! –Double-click racer.exe to start Racer

52 Determining OWL sublanguage OWL menu Determine/Convert OWL Sublanguage… OWL Full cannot be used with the reasoner (decidability not guaranteed), but is more expressive

53 Checking reasoner port number 1 OWL menu Preferences…

54 Checking reasoner port number 2 Address:port where Protégé expects to find the reasoner Address:port where Racer expects to talk to Protege

55 Checking consistency Check consistency… also under OWL menu Click here

56 Checking consistency: result Husband and Wife are inconsistent in this ontology when Spouse is disjoint from Woman If no inconsistent concepts are found, then your ontology is OK

57 Checking the consistency of one class Right-click the class Select Check concept consistency… from the menu

58 Protégé built-in ontology checks Run ontology tests… is also an option in the OWL menu See Test settings… under OWL menu to choose the tests to run Does not require reasoner Click here (bug icon)

59 Classifying the taxonomy Click here (also available under OWL menu) Inferred hierarchy (changes in blue) Inferred conditions tab Summary of results Asserted hierarchy

60 Classifying individuals Click here (also under OWL menu) Inferred class members tab Membership of each class viewable next to each class as (asserted / inferred)

61 Finding members of a single class Select “Compute individuals belonging to class…” Right-click the class Results returned in pop-up window

62 Reasoner: Exercise Try the following –Check consistency –Check consistency of a single class –Classify taxonomy –Run ontology tests Remember this doesn’t require the reasoner –Classify individuals –Find members of a class Are the results as you expect? –What changes would you make to your ontology?

63 Overview Obtaining, installing & community Creating and loading ontologies Creating classes, properties, restrictions & individuals Using the reasoner Diagramming

64 Protégé has plug-ins –Diagramming tools are instances of this –Details of plug-ins stored in.pprj file –You tell Protégé which plug-ins to use by configuring your project OWLViz and Ontoviz are diagramming plug-ins –Require graphviz (from graphviz.org) –If a project using either is loaded into Protégé without graphviz installed, then you get error messages These can be ignored… … but be aware when passing.pprj and.owl files on to others

65 Adding tabs for diagramming 1 Project > Configure …

66 Adding tabs for diagramming 2 Tab Widgets tab Click the check boxes for OWLViz and Ontoviz

67 OWLViz tab Lets you view and interact with the asserted and inferred class hierarchies Click on a class… …Disjoint classes shown with ¬ Export to image Show or hide classes Diagram asserted or inferred model

68 Ontoviz tab Diagram classes and relationships Select classes Click the add classes icon Choose diagram components Click the “Op” icon for options –Including save image to file Saved in project working directory Click the draw icon

69 Ontoviz tab diagram components sub: sub-classes –Includes anonymous classes Which aren’t shown very nicely (font limitations?) sup: super-classes slx: no idea! isx: no idea! slt: give a table of the class’s properties –Limited number of rows by default Can be changed in the options sle: draw relationships between classes ins: show instances –Asserted instances only sys: system classes?

70 Diagramming individuals with Ontoviz Select the class you want individuals diagrammed Click the I+ icon to get the instance browser (right) Select the instances Click add Then select diagramming options as for classes

71 Diagramming individuals: result

72 Query view Right-click an instance Select “Show in Query View”

73 Result of query view Allows you to explore relationships between individuals

74 Diagramming: Exercise Create an inferred class hierarchy diagram using OWLViz and save it to a file Create a diagram of some of the classes in your ontology and relationships between them Create a diagram of individuals in your ontology Have a go with query view

75 Summary

76 Ground covered Installing Protégé and associated software Running Protégé and Racer Creating a new ontology Creating classes, properties, restrictions and instances –What each of these mean! Using the reasoner –Check consistency, classify taxonomy & individuals Diagramming tools Should suffice for Grampian & Odra ontologies

77 Other things to look at Version control –See under Project menu Dublin Core metadata –Contains various annotation properties e.g. creator, etc. –Widely used See metadata tab and new project creation wizard –Should we have an ‘evidence’ metadatum in the CAVES project? Importing ontologies –Searching for ontologies Swoogle: http://swoogle.umbc.edu/index.php Publishing ontologies and defining namespaces Protégé OWL Pizza Tutorial –On the CD

78 Final exercise/homework Choose some of the following classes of people to define –YAPPIE: Young Affluent Parent –OINK: One Income No Kids –DINKY: Dual Income No Kids Yet –DUMP: Destitute Unemployed Mature Person –SITCOM: Single Income, Two Kids, Outrageous Mortgage –SINK: Single, Independent, No Kids –KIPPERS: Kids in Parents’ Pockets Eroding Retirement Savings –SILKY: Single Income Loads of Kids –WOOPIE: Well Off Older Person –SKIPPIE: School Kid with Income and Purchasing Power –TIREDS: Thirtysomething Radical Educated Dropout You may need to add supporting classes to your ontology…


Download ppt "Craigiebuckler, Aberdeen, AB15 8QH, UK Protégé training Gary Polhill."

Similar presentations


Ads by Google