OWL: Web Ontology Language

rangaleclickΛογισμικό & κατασκευή λογ/κού

4 Νοε 2013 (πριν από 3 χρόνια και 9 μήνες)

96 εμφανίσεις

1

OWL: Web Ontology Language

Slides are from
Grigoris Antoniou, Frank van
Harmelen,
“A Semantic Web Primer”


2

Limitations of RDF Schema


Equivalence of classes


Two classes, same concept
-

people use different words to represent
the same thing. It would be very useful to be able to state "this class
is equivalent to this second class".


E.g. One person may create an ontology with a class called "Airplane".
Another person may create an ontology with a class called "Plane". It
would be useful to be able to indicate that the two classes are
equivalent.


Boolean combinations of classes


Sometimes we wish to build new classes by combining other classes
using union, intersection, and complement.


E.g. Person is the union of the classes Male and Female persons.


Disjointness of classes


Sometimes we wish to say that classes are disjoint


e.g. male and female are disjoint classes




3

Limitations of RDF Schema (continued)


Cardinality constraints
-

oftentimes it is useful to indicate the
allowable number of occurrences of a property


E.g. We would like to be able to express that a River has only "one"
officialLength property.


E.g. We would like to be able to express that an Ocean has one
maxDepth.


E.g. a person has exactly two parents, a course is taught by at least
one lecturer


Special characteristics of properties


Transitive property (like “greater than”)


Unique property (like “is mother of”)


A property is the inverse of another property (like “eats” and “is eaten
by”)


4

RDF Schemas: Building Block to More Expressive
Ontology Languages

RDF Schema was designed to be extended. The ontology languages

all use RDF Schema's basic notions of Class, Property, domain, and range.

5

What is OWL?


OWL stands for
Web Ontology Language



OWL is built on top of RDF


OWL is written in XML


OWL is for processing information on the web


OWL was designed to be interpreted by computers


OWL was not designed for being read by people


OWL is a web standard


OWL has three sublanguages

(version 2004)


OWL
Lite
, DL, Full


OWL 2 defines several profiles with different applications in
mind

The following slides are from
Grigoris Antoniou, Frank
van Harmelen,
“A Semantic Web Primer”

6

Tradeoff between Expressive Power and Efficient
Reasoning Support


The richer the language is, the more inefficient the
reasoning support becomes


Sometimes it crosses the border of non
-
computability


We need a compromise:


A language supported by reasonably efficient reasoners


A language that can express large classes of ontologies and
knowledge.



7

OWL Sublanguages


OWL Lite


Simple constraints and classification
hierarchy


OWL DL
(includes OWL Lite)


Maximal expressiveness while
retaining computational
completeness (all conclusions are
computable)


OWL Full
(includes OWL DL)


Maximal expressiveness


Unlikely any reasoning software to
support OWL Full.


OWL Lite

OWL DL

OWL Full

OWL 2 and sublanguages (profiles)


OWL DL is decidable, but the performance is poor for non
-
trivial knowledge base


OWL 2 (2009) gives several profiles of OWL language


Each is intended for different users/applications


Include EL, QL, RL


OWL 2 EL


Has polynomial time to determine consistency of an ontology


A restriction on DL


Disallowed class descriptions


Cardinality


All
-
values
-
from


Union
-
of, disjoint union, complement
-
of


Disallowed property description


Inverse, disjoint


Functional, symmetric, …


8

OWL 2 QL



Efficient query


Similar to Entity
-
relationship modeling


Good to model information contained in existing database


Enable queries in
logspace

wrt

knowledge base size






9

10

Reasoning About Knowledge in Ontology Languages


Class membership


E.g., If
x

is an instance of a class C, and C is a subclass of D, then we
can infer that
x

is an instance of D.


Subclass and Equivalence of classes


E.g., If class A is equivalent to class B, and class B is equivalent to class
C, then A is equivalent to C, too.


Consistency


E.g., X is an instance of classes A and B, but A and B are disjoint.


This is an indication of an error in the ontology.


11

Uses for Reasoning


Reasoning support is important for


checking the consistency of the ontology and the knowledge


checking for unintended relationships between classes


automatically classifying instances in classes


Checks like the preceding ones are valuable for


designing large ontologies, where multiple authors are involved


integrating and sharing ontologies from various sources


12

Reasoning support in OWL


Semantics is a prerequisite for reasoning support


Formal semantics and reasoning support are usually provided
by


mapping an ontology language to a known logical formalism


using automated reasoners that already exist for those formalisms


OWL is (partially) mapped on a
description logic
, and makes
use of reasoners such as FaCT and RACER


Description logics are a subset of predicate logic for which
efficient reasoning support is possible

13

OWL
Compatibility with RDF

S
chema


All varieties of OWL use RDF
for their syntax


Instances are declared as in
RDF, using RDF descriptions
and typing information


OWL constructors are
specializations of their RDF
counterparts

Rdfs:Resource

Owl:DatatypeProperty

owl:Class

Rdfs:Property

Rdfs:Class

Owl:ObjectProperty

OWL

RDF/RDFS

XML Schema

14

OWL Syntactic Varieties


OWL builds on RDF and uses RDF’s XML
-
based syntax


Other syntactic forms for OWL have also been defined:


An abstract syntax, that is much more compact and readable than the
XML languages


A graphic syntax based on the conventions of UML


15

OWL XML/RDF Syntax: Header

<rdf:RDF


xmlns:owl ="http://www.w3.org/2002/07/owl#"


xmlns:rdf ="http://www.w3.org/1999/02/22
-
rdf
-
syntax
-
ns#"


xmlns:rdfs="http://www.w3.org/2000/01/rdf
-
schema#"


xmlns:xsd ="http://www.w3.org/2001/XLMSchema#>


16

owl:Ontology


An OWL ontology may start with a collection of assertions for
housekeeping purposes using
owl:Ontology

element


<
owl:Ontology

rdf:about
=”…"
>


<
rdfs:comment
>An example OWL ontology </
rdfs:comment
>


<
owl:priorVersion

rdf:resource
="http://
www.mydomain.org/uni
-
ns
-
old"/>


<
owl:imports

rdf:resource
="http://
www.mydomain.org
/persons"/>


<
rdfs:label
>University Ontology</
rdfs:label
>

</
owl:Ontology
>



owl:imports
is a transitive property


17

OWL Class


Classes are defined using
owl:Class


owl:Class

is a subclass of
rdfs:Class

<
owl:Class

rdf:ID
=”
associateProfessor
”>


<
rdfs:subClassOf

rdf:resource
=“#
academicStaffMember
”/>

</
owl:Class
>


owl:equivalentClass

defines equivalence of classes

<
owl:Class

rdf:ID
="faculty">


<
owl:equivalentClass

rdf:resource
="#
academicStaffMember
"/>

</
owl:Class
>


Disjointness

is defined using

owl:disjointWith

<
owl:Class

rdf:about
="
#
associateProfessor
">



<
owl:disjointWith

rdf:resource
="#professor"/>



<
owl:disjointWith

rdf:resource
="#
assistantProfessor
"/>

</
owl:Class
>



owl:Thing

is
the most general class, which contains everything


owl:Nothing

is the empty class

18

Properties


In OWL there are two kinds of properties


Object properties, which relate objects to other objects


E.g. is
-
TaughtBy, supervises

<owl:ObjectProperty rdf:ID="isTaughtBy">


<rdfs:domain rdf:resource="#course"/>


<rdfs:range rdf:resource= "#academicStaffMember"/>


<rdfs:subPropertyOf rdf:resource="#involves"/>

</owl:ObjectProperty>


Data type properties, which relate objects to datatype values


E.g. phone, age, etc.

<owl:DatatypeProperty rdf:ID="age">


<rdfs:range rdf:resource=
"http://www.w3.org/2001/XLMSchema#nonNegativeInteger"/>

</owl:DatatypeProperty>


OWL

RDF/RDFS

XML Schema

19

Relations to other properties



Equivalent property

<owl:ObjectProperty rdf:ID="lecturesIn">


<owl:equivalentProperty

rdf:resource="#teaches"/>

</owl:ObjectProperty>



Inverse property

<owl:ObjectProperty rdf:ID="teaches">


<rdfs:range rdf:resource="#course"/>


<rdfs:domain rdf:resource= "#academicStaffMember"/>


<owl:inverseOf rdf:resource="#isTaughtBy"/>

</owl:ObjectProperty>


20

Property restriction


Value constraints: put constrains on the range of the property
when applied to this particular class description.


owl:allValuesFrom

specifies universal quantification


owl:hasValue

specifies a specific value


owl:someValuesFrom

specifies existential quantification


Cardinality constraints: the number of value a property can
take
.



It is a way to define classes



21

owl:allValuesFrom


Define the class of persons whose parents are both
physicians.

<owl:Restriction>


<owl:onProperty rdf:resource="#hasParent" />


<owl:allValuesFrom rdf:resource="#Physician" />


</owl:Restriction>

{ x | (x, y)


hasParent implies y


Physician }


Example:


Suppose: David hasParent Bill who is a Physician, and David hasParent
Rose who is a Phycisian


Conclusion: David belongs to the class defined above.



Semantics

restriction(p allValuesFrom(r)) :


{x | (x,y)


p implies y


r}


22

allValuesFrom


FirstYearCourse is a course that must be taught by professors

<owl:Class rdf:about="#firstYearCourse">


<rdfs:subClassOf>



<owl:Restriction>




<owl:onProperty rdf:resource="#isTaughtBy"/>




<owl:allValuesFrom rdf:resource="#Professor"/>



</owl:Restriction>


</rdfs:subClassOf>

</owl:Class>



{ x | (x,y)

isTaughtBy implies y


Professor }


23

owl:someValuesFrom


Define the class of persons who has at least one physician
parent.

<owl:Restriction>


<owl:onProperty rdf:resource="#hasParent" />


<owl:someValuesFrom rdf:resource="#Physician" />

</owl:Restriction>


{ x |


(x, y)


hasParent


y


Physician}



Semantics

restriction(p someValuesFrom(e)) :


{x |


(x,y)


p


y


e}

24

someValuesFrom


AcademicStaff

must teach at least one under course.

<
owl:Class

rdf:about
="#
academicStaffMember
">


<
rdfs:subClassOf
>



<
owl:Restriction
>



<
owl:onProperty

rdf:resource
="#teaches"/>



<
owl:someValuesFrom

rdf:resource
="#
undergraduateCourse
"/>



</
owl:Restriction
>


</
rdfs:subClassOf
>

</
owl:Class
>

{
x

|


(
x
,
y
)


Teaches


y



undergraduateCourse
}


25

owl:hasValue


<owl:Restriction>


<owl:onProperty rdf:resource="#hasParent" />


<owl:hasValue rdf:resource="#Bill" />


</owl:Restriction>


restriction(
p
value(
i
))
, for i an individual ID


{x | (x, i)


p}

26

Cardinality restrictions


We can specify minimum and maximum number using
owl:minCardinality
and
owl:maxCardinality



It is possible to specify a precise number

by using the same
minimum and
maximum number


For convenience, OWL offers also
owl:cardinality


E.g. Every course is taught by at least someone:


<owl:Class rdf:about="#course">


<rdfs:subClassOf>



<owl:Restriction>




<owl:onProperty rdf:resource="#isTaughtBy"/>




<owl:minCardinality rdf:datatype="&xsd;nonNegativeInteger">





1




</owl:minCardinality>



</owl:Restriction>


</rdfs:subClassOf>

</owl:Class>


27

Example: Book Ontology

<owl:Class rdf:ID="
Book
">




<rdfs:subClassOf rdf:resource="
#REFERENCE
" />



<rdfs:subClassOf>


<owl:Restriction>


<owl:onProperty rdf:resource="
#title
" />



<owl:cardinality rdf:datatype="
http://www.w3.org/2001/XMLSchema#nonNegativeInteger
">
1


</owl:cardinality>



</owl:Restriction>



</rdfs:subClassOf>



<rdfs:subClassOf>


<owl:Restriction>


<owl:onProperty rdf:resource="
#volume
" />



<owl:maxCardinality rdf:datatype="
http://www.w3.org/2001/XMLSchema#nonNegativeInteger
">
1


</owl:maxCardinality>




</owl:Restriction>



</rdfs:subClassOf>



<rdfs:subClassOf>


<owl:Restriction>



<owl:onProperty rdf:resource="
#publisher
" />




<owl:maxCardinality rdf:datatype="
http://www.w3.org/2001/XMLSchema#nonNegativeInteger
">
1


</owl:maxCardinality>



</owl:Restriction>



28

Special properties


owl:TransitiveProperty (
transitive property)


E.g. “has better grade than”, “is ancestor of”


owl:SymmetricProperty
(symmetry)


E.g. “has same grade as”, “is sibling of”


owl:FunctionalProperty
defines a property that has at most one value for
each object


E.g. “age”, “height”, “directSupervisor”


owl:InverseFunctionalProperty
defines a property for which two different
objects cannot have the same value


<owl:ObjectProperty rdf:ID="hasSameGradeAs">



<rdf:type rdf:resource="&owl;TransitiveProperty"/>



<rdf:type rdf:resource="&owl;SymmetricProperty"/>



<rdfs:domain rdf:resource="#student"/>



<rdfs:range rdf:resource="#student"/>

</owl:ObjectProperty>

29

Boolean Combinations: complementOf


We can combine classes using Boolean operations (union,
intersection, complement)

<owl:Class rdf:about="#course">


<rdfs:subClassOf>



<owl:Restriction>




<owl:complementOf rdf:resource="#staffMember"/>



</owl:Restriction>


</rdfs:subClassOf>

</owl:Class>




30

Boolean Combinations: unionOf

<owl:Class rdf:ID="peopleAtUni">


<owl:unionOf rdf:parseType="Collection">




<owl:Class rdf:about="#staffMember"/>




<owl:Class rdf:about="#student"/>


</owl:unionOf>

</owl:Class>



The new class is not a subclass of the union, but rather equal
to the union


We have stated an equivalence of classes


31

Boolean Combinations: intersectionOf

<owl:Class rdf:ID="facultyInCS">


<owl:intersectionOf rdf:parseType="Collection">



<owl:Class rdf:about="#faculty"/>



<owl:Restriction>




<owl:onProperty rdf:resource="#belongsTo"/>


<owl:hasValue rdf:resource= "#CSDepartment"/>



</owl:Restriction>


</owl:intersectionOf>

</owl:Class>


Exercise: describe the class of faculty who have joint appointment in CS
and ECE.

32

Nesting of Boolean Operators

Administrative staff: staff members who are neither faculty nor technical
support staff.


<owl:Class rdf:ID="adminStaff">


<owl:intersectionOf rdf:parseType="Collection">




<owl:Class rdf:about="#staffMember"/>




<owl:complementOf>




<owl:unionOf rdf:parseType="Collection">




<owl:Class rdf:about="#faculty"/>




<owl:Class rdf:about= "#techSupportStaff"/>




</owl:unionOf>




</owl:complementOf>


</owl:intersectionOf>

</owl:Class>

faculty

admin

tech

staff

33

Enumerations with owl:oneOf

<owl:oneOf rdf:parseType="Collection">



<owl:Thing rdf:about="#Monday"/>



<owl:Thing rdf:about="#Tuesday"/>



<owl:Thing rdf:about="#Wednesday"/>



<owl:Thing rdf:about="#Thursday"/>



<owl:Thing rdf:about="#Friday"/>



<owl:Thing rdf:about="#Saturday"/>



<owl:Thing rdf:about="#Sunday"/>

</owl:oneOf>



Now we have talked about three ways to describe a class:


Enumeration


Set operation


Property restriction

34

Declaring instances


Instances of classes are declared as in RDF:

<rdf:Description rdf:ID="949352">


<rdf:type rdf:resource= "#academicStaffMember"/>

</rdf:Description>


Or alternatively, we can have the following simplified notation:

<academicStaffMember rdf:ID="949352">

</academicStaffMember>


35

No Unique
-
Names Assumption


OWL does not adopt the unique
-
names assumption of
database
systems


If two instances have different names or IDs, it does not imply that
they are different individuals


Suppose we state


each course is taught by at most one staff member,
and



a given course is taught by two staff members



An
OWL
reasoner

does not flag an error;



Instead it infers that the two resources are
equal
.


36

Distinct Objects


To ensure that different individuals are indeed recognized as such, we
must explicitly assert their inequality:

<lecturer rdf:about="949318">


<
owl:differentFrom
rdf:resource="949352"/>

</lecturer>


OWL provides a shorthand notation to assert the pairwise
inequality of all individuals in a given list

<owl:allDifferent>


<owl:distinctMembers rdf:parseType="Collection">



<lecturer rdf:about="949318"/>



<lecturer rdf:about="949352"/>



<lecturer rdf:about="949111"/>


</owl:distinctMembers>

</owl:allDifferent>



37

Data Types in OWL


XML Schema provides a mechanism to construct user
-
defined
data types


E.g., the data type of
adultAge
includes all integers greater than 18


Such derived data types cannot be used in OWL


The OWL reference document lists all the XML Schema data types that
can be used


These include the most frequently used types such as
string
,
integer
,
Boolean
,
time
, and
date
.


38

An African Wildlife Ontology


Class Hierarchy

Animal

lion

giraffe

carnivore

herbivore

tree

plant

39

An African Wildlife Ontology


Properties

<owl:TransitiveProperty rdf:ID="is
-
part
-
of"/>

<owl:ObjectProperty rdf:ID="eats">


<rdfs:domain rdf:resource="#animal"/>

</owl:ObjectProperty>

<owl:ObjectProperty rdf:ID="eaten
-
by">


<owl:inverseOf rdf:resource="#eats"/>

</owl:ObjectProperty>

40

An African Wildlife Ontology

Plants and Trees


<owl:Class rdf:ID=“animal“/>


<owl:Class rdf:ID="plant">


<rdfs:comment>Plants are disjoint from animals.


</rdfs:comment>


<owl:disjointWith="#animal"/>

</owl:Class>


<owl:Class rdf:ID="tree">


<rdfs:comment>Trees are a type of plant.


</rdfs:comment>


<rdfs:subClassOf rdf:resource="#plant"/>

</owl:Class>

41

An African Wildlife Ontology

Branches

<owl:Class rdf:ID="branch">


<rdfs:comment>Branches are parts of trees. </rdfs:comment>


<rdfs:subClassOf>



<owl:Restriction>




<owl:onProperty rdf:resource="#is
-
part
-
of"/>




<owl:allValuesFrom rdf:resource="#tree"/>



</owl:Restriction>


</rdfs:subClassOf>

</owl:Class>

42

An African Wildlife Ontology


Leaves

<owl:Class rdf:ID="leaf">


<rdfs:comment>Leaves are parts of branches. </rdfs:comment>


<rdfs:subClassOf>



<owl:Restriction>




<owl:onProperty rdf:resource="#is
-
part
-
of"/>




<owl:allValuesFrom rdf:resource="#branch"/>



</owl:Restriction>


</rdfs:subClassOf>

</owl:Class>

43

An African Wildlife Ontology


Carnivores

<owl:Class rdf:ID="carnivore">


<rdfs:comment>


Carnivores are exactly those animals that eat also animals.


</rdfs:comment>


<owl:intersectionOf rdf:parsetype="Collection">



<owl:Class rdf:about="#animal"/>



<owl:Restriction>




<owl:onProperty rdf:resource="#eats"/>




<owl:someValuesFrom rdf:resource="#animal"/>



</owl:Restriction>


</owl:intersectionOf>

</owl:Class>

44

An African Wildlife Ontology

Herbivores

<owl:Class rdf:ID="herbivore">


<rdfs:comment> Herbivores are exactly those animals




that eat only plants or parts of plants.


<owl:intersectionOf rdf:parseType=“Collection”>


<owl:Class rdf=about=“#animal”/>


<owl:Restriction>


<owl:onProperty rdf:resource=“#eats”/>


<owl:allValuesFrom>


<owl:Class>


<owl:unionOf rdf:parseType=“Collection”>





<owl:Class rdf:resource=“plant”/>


<owl:Restriction>


<owl:onProperty rdf;resource=“#is_part_of”/>


<owl:allValuesFrom rdf:resource=“#plant”/>


</owl:Restriction>


</owl:unionOf>


</class>


</owl:allValuesFrom>


</owl:Restrcition>


</owl:intersectionOf>

</owl:Class>

45

An African Wildlife Ontology

Giraffes

<owl:Class rdf:ID="giraffe">


<rdfs:comment>Giraffes are herbivores, and they eat only leaves.


</rdfs:comment>


<rdfs:subClassOf rdf:type="#herbivore"/>


<rdfs:subClassOf>



<owl:Restriction>




<owl:onProperty rdf:resource="#eats"/>




<owl:allValuesFrom rdf:resource="#leaf"/>



</owl:Restriction>


</rdfs:subClassOf>

</owl:Class>

46

An African Wildlife Ontology

Lions

<owl:Class rdf:ID="lion">


<rdfs:comment>Lions are animals (carnivores) that eat only herbivores.


</rdfs:comment>


<rdfs:subClassOf rdf:type="#carnivore"/>


<rdfs:subClassOf>



<owl:Restriction>




<owl:onProperty rdf:resource="#eats"/>




<owl:allValuesFrom rdf:resource="#herbivore"/>



</owl:Restriction>


</rdfs:subClassOf>

</owl:Class>

47

An African Wildlife Ontology

Tasty Plants

<owl:Class rdf:ID="tasty
-
plant">


<rdfs:comment>Plants eaten both by herbivores and carnivores </rdfs:comment>


<rdfs:subClassOf rdf:resource=“#plant”/>


<rdfs:subClassOf>



<owl:Restriction>




<owl:onProperty rdf:resource=“#eaten_by”/>




<owl:someValuesFrom> <owl:Class rdf:about=“#herbivore”/>


</owl:someValuefrom>


</owl:Restriction>


</rdfs:subClassOf>



<rdfs:subClassOf>



<owl:Restriction>




<owl:onProperty rdf:resource=“#eaten_by”/>




<owl:someValuesFrom> <owl:Class rdf:about=“#carnivore”/>


</owl:someValuefrom>


</owl:Restriction>


</rdfsSublassOf>

</owl:Class>

48

Closed world assumption


In a closed world (like
DBs
), the information we have is
everything


On the Semantic Web, we want people to be able to extend our
models. In this open world, we assume there can always more
information added later


Closed world assumption: what is currently not known to be
true is false


If a statement can not be proved to be true, it is false.



Example


Statement: "Mary" "is a citizen of" "France"


Question: Is Mary a citizen of Canada?


"Closed world" (for example database or Prolog) answer: No.


49

Open world assumption:


OWL adopts the
open
-
world assumption
:


system's knowledge is incomplete


On the huge and only partially knowable WWW, this is a correct assumption


if a statement cannot be inferred from what is expressed in the
system, then it still cannot be inferred to be false.


The absence of a particular statement within the web means, in
principle, that the statement has not been made explicitly yet.


Example


Statement: "Mary" "is a citizen of" "France"


Question: Is Mary a citizen of Canada?


"Open world" answer: unknown (Mary could have dual citizenship).



The open world assumption is related to the monotonic nature of first
-
order logic: adding new information never falsifies a previous conclusion.
Namely, if we subsequently learn that Mary is also a citizen of Canada,
this does not change any earlier positive or negative conclusions.


50

Summary


OWL is the proposed standard for Web ontologies


OWL builds upon RDF and RDF Schema:


(XML
-
based) RDF syntax is used


Instances are defined using RDF descriptions


Most RDFS modeling primitives are used


Formal semantics and reasoning support is provided
through the mapping of OWL to logics


Predicate logic and especially description logics have been used for
this purpose


While OWL is sufficiently rich to be used in practice,
extensions are in the making


They will provide further logical features, including rules

51

Look back at the definition for ontology


An ontology is a formal, explicit specification of a shared
conceptualization
-

Gruber


Conceptualization

refers to an abstract model of phenomena.


Explicit
means that the type of concepts used, and the constraints on
their use are explicitly defined.


Formal

refers to the fact that the ontology should be machine
readable.


Shared
reflects that ontology should capture consensual knowledge
accepted by the communities.



52

Search for ontologies


53

OWL editors


Editing by hand is not a option

Apache Jena™


a Java framework for building Semantic Web applications.



Jena provides a collection of tools and Java libraries




develop semantic web and linked
-
data apps, tools and servers.


The Jena Framework includes:


an API for reading, processing and writing RDF data in XML, N
-
triples
and Turtle formats;


an ontology API for handling OWL and RDFS
ontologies
;


a rule
-
based inference engine for reasoning with RDF and OWL data
sources;


stores to allow large numbers of RDF triples to be efficiently stored on
disk;


a query engine compliant with the latest SPARQL specification


servers to allow RDF data to be published to other applications using a
variety of protocols, including SPARQL

54

Jena example


Model model =
ModelFactory.createDefaultModel
();

model.read(new

FileReader("c:
\
\
COSMO.owl
"), "");


StmtIterator

iter

=
model.listStatements
();

while (
stmts.hasNext
()) {




statements++;




Statement
s

=
stmts.nextStatement
();




String predicate =
s.getPredicate().getLocalName
();




String subject =
s.getSubject().getLocalName
();




RDFNode

objectNode

=
s.getObject
();




if (
predicate.equalsIgnoreCase("subclassof
”)


……

||(
predicate.equalsIgnoreCase("domain
")


||
predicate.equalsIgnoreCase("range
"))






55

56

Protege


57

Spectrum of ontologies


Amount of meaning and formality increases left to right

terms

Data

dictionaris

thesauri

XML

DTD

DB schema

XML

Schema

Formal

Taxonomy

Frame

Description

Logic

General

Logic

From Pushpak Bhattacharyya