Lightweight Semantic Annotation of Geospatial RESTful Services
1. Lightweight Semantic
Annotation of Geospatial
RESTful Services
Victor Saquicela, Luis. M. Vilches-Blazquez, and Oscar Corcho
Facultad de Informática, Universidad Politécnica de Madrid
Campus de Montegancedo s/n, 28660 Boadilla del Monte, Madrid
http://www.oeg-upm.net
{vsaquicela,lmvilches,ocorcho}@fi.upm.es
Phone: 34.91.3366605, Fax: 34.91.3524819
Presented by Boris Villazón-Terrazas ESWC 2011
Project: EV Date: 02/06/2011
Heraklion, Greece
2. ToC
• Introduction & motivation
• Related work
• Semantic annotation of RESTful services
• A sample set of RESTful services
• Syntactic description
y p
• Semantic annotation
• Checking the semantic annotation of RESTful services
Checking the semantic annotation of RESTful
• Experimental results
• Conclusions and future work
2
3. Introduction and motivation
RESTful
RESTful Service Y
RESTful
Service X
Service Z
RESTful
Service
S i W …
Description in HTML that contains:
• a list of the available operations
RESTful • URIs and parameters
Service W • expected output
• error messages
• set of examples of execution
• 3274 of RESTful services (APIs) in programmableweb.com
5. Related work
• Syntactic
• H
Heavyweight: WSDL
i ht
• Lightweight: WADL, hREST
• Semantic
• Heavyweight: OWL-S, WSMO
y g
• Lightweight: SA-REST, MicroWSMO
• Tools
• SWEET
• WSMO editor
5
6. Our approach
Semantic annotation of RESTf l services b
S ti t ti f RESTful i by
(1) Obtaining and formalising their syntactic descriptions
(2) Interpreting, and semantically enriching their parameters
Our approach uses diverse types of resources
• cross-domain ontology, DBpedia (combined with GeoNames)
• Suggestion services
• Synonym services
Semantic
annotation
Repository
Syntactic description
6
7. A sample set of RESTful services
• Service 1. retrieves information related to a country.
• http://ws.geonames.org/countryInfo?country=ES
• Service 2. retrieves information about places (venues).
• htt // i
http://api.eventful.com/rest/venues/search?app_key=p4t8BFcLDt C
tf l / t/ / h? k 4t8BF LDt CzpxdS&location=Madrid
dS&l ti M d id
Service 1 Service 2
<venue id="V0-001-000154997-6">
<geonames> <url>http://eventful.com/madrid/venues/la-
<country>
y ancha-/V0-001-000154997-6</url>
<countryCode>ES</countryCode> <country_name>Spain</country_name>
<countryName>Spain</countryName> <name>La Ancha</name>
<venue_name>La Ancha</venue_name>
<isoNumeric>724</isoNumeric> <description></description>
<isoAlpha3>ESP</isoAlpha3> <venue_type>Restaurant</venue_type>
<fipsCode>SP</fipsCode> <address></address>
<continent>EU</continent> <city_name>Madrid</city_name>
<capital>Madrid</capital> <region_name></region_name>
<region_abbr></region_abbr>
<areaInSqKm>504782.0</areaInSqKm> <postal_code></postal_code>
<population>40491000</population> <country_abbr2>ES</country_abbr2>
<currencyCode>EUR</currencyCode>
C d EUR / C d <country_abbr>ESP</country_abbr>
<languages>es-ES,ca,gl,eu</languages> <longitude>-3.68333</longitude>
<geonameId>2510769</geonameId> <latitude>40.4</latitude>
<geocode_type>City Based GeoCodes
<bBoxWest>-18.169641494751</bBoxWest </geocode_type>
<bBoxNorth>43.791725</bBoxNorth> <owner>frankg</owner>
owner frankg /owner
<bBoxEast>4.3153896</bBoxEast> <timezone></timezone>
<bBoxSouth>27.6388</bBoxSouth> <created></created>
</country> <event_count>0</event_count>
<trackback_count>0</trackback_count>
</geonames> <comment_count>0</comment_count>
<link_count>0</link_count>
<li k t>0</li k t>
<image></image>
</venue>
<venue id="V0-001-000154998-5">
7
8. Syntactic description: Invocation and registration
• User adds the URL of a service in our system
• System invokes the RESTful service with some sample
y
parameters, by using SDO API
• System analyzes the response (XML) to obtain a syntactic
description of the parameters
• Results
• Service1.
countryInfo($country,bBoxSouth,isoNumeric,continent,fipsCode,areaInSqK
m,languages,isoAlpha3,countryCode,bBoxNorth,population,bBoxWest,curre
ncyCode,bBoxEast,capital,geonameId,countryName)
ncyCode bBoxEast capital geonameId countryName)
• Service2.
rest/venues/search($location,$app_key,id,link_count,page_count,longitude,t
rackback_count,version,venue_type,owner,url,country_name,event_count,t
rackback count,version,venue type,owner,url,country name,event count,t
otal_items,city_name,address,name,latitude,page_number,postal_code,cou
ntry_abbr,first_item,page_items,last_item,page_size,country_abbr2,comme
nt_count,geocode_type,search_time,venue_name)
• Results are stored and WADL file is generated.
8
9. Semantic annotation (I)
• The starting point is the list of syntactic parameters
• Th system retrieves all th classes/properties f
The t ti ll the l / ti from
DBpedia ontology whose names have a match with each
p
parameter of the RESTFul Service.
• Exact match
• Similarity measures: Jaro, Jaro Winkler, and Levenshtein
• If the system obtains correspondences from the matching
process,
process it uses DBPedia concepts/properties to retrieve
samples (RDF instances).
• If there is no “matching”, we use external services
• Spelling suggestion services
• Synonym services
9
13. Checking the semantic annotation (Input)
• The system selects for each parameter a random subset
of the example instances.
• It makes several invocations of the service, by iterating
over the registered values.
g
• If the service return results from the invocation -> the
service is considered as executable; non-executable if it
cannot invoked succesfully.
Country
http://dbpedia.org/ontology/country http://dbpedia.org/ontology/locationCountry
Instance1 Instance1
Instance2 Instance2
Instance3 Instance3
......... .........
InstanceM InstanceM
13
14. Checking the semantic annotation (Output)
• The system only takes into account executions with
correct inputs.
• The system compares the outputs obtained after
execution with the information already stored in the
y
repository.
• If the output can be matched, the system considers the
output annotations as valid.
• Finally, the correspondences between the different
parameters of the service and DBpedia/Geonames
ontology are registered and stored into the respository.
14
15. Experimental results (I)
• 60 RESTful services selected from www.programmableweb.com (manually)
• 56 registered in the system
• List of 369 different parameters, 52 input parameters and 342 output parameters,
without duplications.
Additional Matches (DBpedia and
Attributes Total
parameters GeoNames ontologies)
Initial parameters 369 - 191
Parameters + Suggestions 426 57 33
Parameters + Synonyms
y y 1573 1147 126
Parameters + Suggestions + Synonyms 1573 1204 159
15
16. Experimental results (II)
Annotated Annotated
RESTful Total Annotated Special Service
parameters parameters
Service parameters parameters parameters validation
( p
(DBpedia)) (
(GeoNames) )
Input
152 78 33 45 73 56 4
parameters
Output
862 315 202 113 299 -
parameters
Results of the input and output parameters
Found Not found Not Right
RESTful Service Annotated Precision Recall
parameters parameters annotated parameters
Output
475 92 315 160 242 0.66 0.77
parameters
Output parameters metrics
16
17. Conclusions and future work
• We have proposed an approach to perform semantic annotation
process of RESTful services, using ontologies (DBpedia and
Geonames) and external resources (suggestions and synonyms).
• Future work:
• GUI that will ease the introduction of existing service by users
users.
• Improving the SPARQL queries
• More specific domain ontologies in the semantic process
• Standards generation such as hREST, SA-REST and MicroWSMO
• Integration with iServe.
17
18.
19. Lightweight Semantic
Annotation of Geospatial
RESTful Services
Victor Saquicela, Luis. M. Vilches-Blazquez, and Oscar Corcho
Facultad de Informática, Universidad Politécnica de Madrid
Campus de Montegancedo sn, 28660 Boadilla del Monte, Madrid
http://www.oeg-upm.net
{vsaquicela,lmvilches,ocorcho}@fi.upm.es
Phone: 34.91.3366605, Fax: 34.91.3524819
Presented by Boris Villazón-Terrazas ESWC 2011
Project: EV Date: 02/06/2011
Heraklion, Greece