Title: OWL Genie an API to OWL
1OWL Genie(an API to OWL)
- Roger L. Costello
- May, '03
2What is OWL Genie?
OWL Genie
XSLT
OWL Ontologies
OWL Genie is a package of XSLT named-templates. Th
e purpose of OWL Genie is to shield your
XSLT application from directly accessing OWL
Ontologies. Thus, OWL Genie is an OWL API.
3Contents of this Document
1. API Description the API is described, along
with examples. 2. Using the API this section
shows how an XSLT application can use the
API. 3. API in Action this gives the URL where
you can see the API being tested. 4. Demo
this section demonstrates an XSLT application
using the API to "bridge the terminology
gap". 5. Download gives the URL to download the
API. 6. API Implementation this gives some
details on how the API is implemented. 7.
Want to help? Describes how you can participate.
4The OWL Genie API - 1
getProperties(classURI) returns a list of
space-separated property URIs.
Example Calling the getProperties template
with http//www.xfront.com/owl/ontologies/c
amera/Camera results in returning
http//www.xfront.com/owl/ontologies/camera/lens
http//www.xfront.com/owl/ontologies/camera/
body http//www.xfront.com/owl/ontologies/c
amera/viewFinder http//www.xfront.com/owl/
ontologies/camera/cost
5The OWL Genie API - 2
getEquivalentProperties(propertyURI)
returns a list of space-separated property URIs.
Example Calling the getEquivalentProperties
template with http//www.xfront.com/owl/ont
ologies/camera/size results in returning
http//www.xfront.com/owl/ontologies/camera/focal
-length
6The OWL Genie API - 3
getSuperClasses (classURI) returns a list
of space-separated class URIs.
Example Calling the getSuperClasses template
with http//www.xfront.com/owl/ontologies/c
amera/SLR results in returning
http//www.xfront.com/owl/ontologies/camera/Camer
a http//www.xfront.com/owl/ontologies/camer
a/PurchaseableItem
7The OWL Genie API - 4
getPropertyTypes (propertyURI) returns a
list of space-separated type URIs.
Example Calling the getPropertyTypes template
with http//www.xfront.com/owl/ontologies/g
unLicense/serial results in returning
http//www.w3.org/2002/07/owlDatatypeProperty
http//www.w3.org/2002/07/owlFunctionalPropert
y http//www.w3.org/2002/07/owlInverseFunct
ionalProperty
8The OWL Genie API - 5
getClassSpecificPropertyDefinitions (classURI,
propertyURI) returns a list of
space-separated propertyvalue URI pairs.
Example Calling the getPropertyTypes template
with http//www.xfront.com/owl/ontologies/w
ater/River http//www.xfront.com/owl/ontolo
gies/water/connectsTo results in returning
http//www.w3.org/2002/07/owlsomeValuesFromhtt
p//www.xfront.com/owl/ontologies/water/BodyOfWat
er
9The OWL Genie API - 6
getDomain (propertyURI) returns a list of
space-separated class URIs.
Example Calling the getDomain template with
http//www.xfront.com/owl/ontologies/water/empt
iesInto results in returning
http//www.xfront.com/owl/ontologies/water/River
10The OWL Genie API - 7
getRange (propertyURI) returns a list of
space-separated class URIs.
Example Calling the getRange template with
http//www.xfront.com/owl/ontologies/water/empti
esInto results in returning
http//www.xfront.com/owl/ontologies/water/BodyOf
Water
11The OWL Genie API - 8
getInstances (classURI) returns a list of
space-separated instance URIs.
Example Calling the getInstances template with
http//www.xfront.com/owl/ontologies/water/K
yoto-Protected-River results in returning
http//www.china.org/geography/riversYangtze
http//www.us.org/riversMississippi
http//www.africa.org/riversNile
http//www.s-america.org/riversAmazon
12The OWL Genie API - 9
getEquivalentClasses(classURI) returns a
list of space-separated class URIs.
Example Calling the getEquivalentClasses
template with http//www.xfront.com/owl/ont
ologies/water/BodyOfWater results in
returning http//www.other.orgWaterGeoFeat
ure
13Note - 1
The previous slides showed URIs returned by the
API. The URIs were on separate lines. I did this
just for presentation purposes. In reality, the
API does not separate each URI by a carriage
return. Rather, each URI is separated by a
single space, e.g., uri1 uri2 uri3 ...
14Note - 2
Suppose that these are the superclasses of class
A
D
C
B
A
Here is what you get when you invoke the
getSuperClasses template with class A
B D C
15Using OWL Genie API - 1
getProperties(classURI) returns a list of
space-separated property URIs.
Here's how to invoke the template
ltxslcall-template name"getProperties"gt
ltxslwith-param name"classURI"
select"'http//www.xfront.com/owl/ontologies/came
ra/Camera'"/gt lt/xslcall-templategt
16Using OWL Genie API - 2
getEquivalentProperties(propertyURI)
returns a list of space-separated property URIs.
Here's how to invoke the template
ltxslcall-template name"getEquivalentProperties"gt
ltxslwith-param name"propertyURI"
select"'http//www.xfront.com/owl/ontologies/came
ra/size'"/gt lt/xslcall-templategt
17Using OWL Genie API - 3
getSuperClasses (classURI) returns a list
of space-separated class URIs.
Here's how to invoke the template
ltxslcall-template name"getSuperClasses"gt
ltxslwith-param name"classURI"
select"'http//www.xfront.com/owl/ontologies/came
ra/SLR'"/gt lt/xslcall-templategt
18Using OWL Genie API - 4
getPropertyTypes (propertyURI) returns a
list of space-separated type URIs.
Here's how to invoke the template
ltxslcall-template name"getPropertyTypes"gt
ltxslwith-param name"propertyURI"
select"'http//www.xfront.com/owl/ontologies/gunL
icense/serial'"/gt lt/xslcall-templategt
19Using OWL Genie API - 5
getClassSpecificPropertyDefinitions (classURI,
propertyURI) returns a list of
space-separated propertyvalue URI pairs.
Here's how to invoke the template
ltxslcall-template name"getClassSpecificPropertyD
efinitions"gt ltxslwith-param
name"classURI" select"'http//www.xfront.com/owl
/ontologies/water/River'"/gt
ltxslwith-param name"propertyURI"
select"'http//www.xfront.com/owl/ontologies/wate
r/connectsTo'"/gt lt/xslcall-templategt
20Using OWL Genie API - 6
getDomain (propertyURI) returns a list of
space-separated class URIs.
Here's how to invoke the template
ltxslcall-template name"getDomain"gt
ltxslwith-param name"propertyURI"
select"'http//www.xfront.com/owl/ontologies/wate
r/emptiesInto'"/gt lt/xslcall-templategt
21Using OWL Genie API - 7
getRange (propertyURI) returns a list of
space-separated class URIs.
Here's how to invoke the template
ltxslcall-template name"getRange"gt
ltxslwith-param name"propertyURI"
select"'http//www.xfront.com/owl/ontologies/wate
r/emptiesInto'"/gt lt/xslcall-templategt
22Using OWL Genie API - 8
getInstances (classURI) returns a list of
space-separated instance URIs.
Here's how to invoke the template
ltxslcall-template name"getInstances"gt
ltxslwith-param name"propertyURI"
select"'http//www.xfront.com/owl/ontologies/wate
r/Kyoto-Protected-River'"/gt lt/xslcall-templategt
23Using OWL Genie API - 9
getEquivalentClasses(classURI) returns a
list of space-separated class URIs.
Here's how to invoke the template
ltxslcall-template name"getEquivalentClasses"gt
ltxslwith-param name"classURI"
select"'http//www.other.orgWaterGeoFeature'"/gt
lt/xslcall-templategt
24OWL Genie API in Action
I have created an XSLT application which tests
each template in the API. Using Internet
Explorer, go to this URL
http//www.xfront.com/owl-genie/TestOWL-GenieAPI.x
ml To view the XSLT application, go to this
URL http//www.xfront.com/owl-genie/TestOWL
-GenieAPI.xsl
25Demo of interoperability in a heterogeneous data
environment
Hunts.xml
OWL Genie
Camera Application
Camera.owl
26Demo - searching for Camera, lens size, aperture
info
- The Camera Application is searching for documents
that meet this desire - I am interested in purchasing a Camera with a
75-300mm zoom lens size, that has an aperture of
4.5-5.6, and a shutter speed that ranges from
1/500 sec. to 1.0 sec. - The Camera Application understands the terms
(i.e., elements) Camera, lens size, and aperture. - If a document uses terms that it does not
understand, then the Camera application
"consults" the Camera Ontology (via the API).
27Hunts.xml - uses unfamiliar terminology
ltPhotographyStoregt ltcatalog
rdfparseType"Collection"gt ltSLR
rdfID"Olympus-OM-10"
xmlns"http//www.xfront.com/owl/ontologies/camera
/"gt ltlensgt ltLensgt
ltfocal-lengthgt75-300mm
zoomlt/focal-lengthgt
ltf-stopgt4.5-5.6lt/f-stopgt
lt/Lensgt lt/lensgt ltbodygt
ltBodygt
ltshutter-speed rdfparseType"Resource"gt
ltmingt0.002lt/mingt
ltmaxgt1.0lt/maxgt
ltunitsgtsecondslt/unitsgt
lt/shutter-speedgt lt/Bodygt
lt/bodygt lt/SLRgt lt/cataloggt lt/Photog
raphyStoregt
?
Need to consult the Camera Ontology!
28View the Demo
Using Internet Explorer, go to this URL
http//www.xfront.com/owl-genie/Hunts.xml To
view the XSLT Camera application, go to this
URL http//www.xfront.com/owl-genie/camera.
xsl
29QuikPhoto.xml - uses familiar terminology
ltCameragt ltlensgt ltLensgt
ltsizegt75-300mm zoomlt/sizegt
ltaperturegt4.5-5.6lt/aperturegt lt/Lensgt
lt/lensgt ltbodygt ltBodygt
ltshutter-speed rdfparseType"Resource"gt
ltmingt0.002lt/mingt
ltmaxgt1.0lt/maxgt
ltunitsgtsecondslt/unitsgt
lt/shutter-speedgt lt/Bodygt
lt/bodygt lt/Cameragt
No need to consult the Camera Ontology.
30View the Demo
Using Internet Explorer, go to this URL
http//www.xfront.com/owl-genie/QuikPhoto.xml To
view the XSLT Camera application, go to this
URL http//www.xfront.com/owl-genie/camera.
xsl
31Lesson Learned
- The Camera Application is able to process
documents that uses unfamiliar terminology.
Interoperates!
Community B uses terms Camera, aperture, lens size
Community A uses terms SLR, f-stop, focal-length
OWL Camera Ontology
32Download
You can download the OWL Genie API, along with
all the demos, by going to this URL
http//www.xfront.com/owl-genie/download.html
33OWL Genie Implementation Details
"include"
Private.xsl
"include"
OWL-Genie.xsl
OntologyDirectory.xsl
34OWL-Genie.xsl
This XSLT stylesheet contains the templates that
an application invokes. It "includes" the other
two stylesheets, and invokes the templates that
they provide.
35Private.xsl
This XSLT stylesheet contains templates
that actually implement the capabilities exposed
in OWL-Genie.xsl.
36OntologyDirectory.xsl
This XSLT stylesheet has just one template. The
template is invoked with a namespace, and it
returns the filename of the OWL document that
defines that namespace. - When you create a new
OWL ontology you need to add the
namespace/filename into this document!
37Using OWL Genie in your XSLT Applications
Simply add this line at the top of your
stylesheet ltxslinclude
href"OWL-Genie.xsl"/gt
38Want to Help?
There are two ways to help 1. Suggest new
APIs. 2. Implement a template.
39To Do List
- Currently the API just supports a single document
for defining an ontology. However, an ontology
may be split over multiple documents. The API
needs to be enhanced to support this.