=Paper= {{Paper |id=Vol-470/paper-1 |storemode=property |title=Data Extraction from Semantic Annotated Deep Web Sites |pdfUrl=https://ceur-ws.org/Vol-470/paper1.pdf |volume=Vol-470 }} ==Data Extraction from Semantic Annotated Deep Web Sites== https://ceur-ws.org/Vol-470/paper1.pdf
                                                                     ComposableWeb'09

Data Extraction from Semantic Annotated Deep
                   Web Sites

              Eduardo Martı́n Rojo and Vicente Luque Centeno

                         Universidad Carlos III de Madrid
                            Av. Universidad 30, 28911
                            Leganés (Madrid), España
                           {emartin,vlc}@it.uc3m.es


      Abstract. Automatic navigating and gathering information from Deep
      Web sites requires the use of Web Wrappers in order to simulate human
      interaction with Web sites. Web Wrappers have some drawbacks: their
      implementations are specific to the accessed site and also their source
      code needs a constant maintenance in order to support new changes on
      Web site.
      In this work we propose an annotation model for Deep Web sites that
      could be used for data extraction from the point of view of a Web client.
      Using these annotations will enable Web Wrappers to be more adaptable
      to Web site changes.


1   Introduction
Nowadays most popular Web sites provide to their users with development tools
that make possible to create applications that access their services, like eBay
Developers Program 1 . Also, sometimes they provide Web services that could be
accessed by Mashup applications like Google Mashups 2 , Yahoo Pipes 3 or Mi-
crosoft Popfly 4 . However, the great majority of Web sites do not provide devel-
opment tools or Web services because they are only focused on being operated by
human users. Automatic accessing Web sites that do not provide these facilities
is achieved by using Web Wrappers[7].
    Web Wrappers have some drawbacks: first, they require developers with
strong knowledge on the accessed Web site because Web Wrappers are site spe-
cific solutions that have dependencies with Web structure; and second, Web
Wrappers require constant maintenance in order to support new changes on the
Web sites they are accessing. Web Wrappers development tools evolved trying
to solve these drawbacks and also to make possible an easier integration of Web
data from heterogeneous sources. Some examples of common Web Wrappers de-
velopment tools are site specific solutions like GreaseMonkey 5 and Ubiquity 6 ,
1
  http://developer.ebay.com/
2
  http://www.googlemashups.com/
3
  http://pipes.yahoo.com
4
  http://www.popfly.com
5
  http://www.greasespot.net/
6
  http://ubiquity.mozilla.com/


                                         1
ComposableWeb'09

user-friendly tools that allow natural language references like Chickenfoot 7 , and
also graphical IDE solutions like OpenKapow RoboMaker 8 .
    The main common characteristic among all current Wrapper development
tools is that, although their operation is simple, they still have strong depen-
dencies with Web site structure, originating a continuous effort of maintenance
with the created Wrappers. In our work we will define a formalization of Web
structure that can be used for semantic annotation of Deep Web sites in order to
represent their navigation operation. These annotations combined with current
Wrapper development tools will allow implementation of Wrappers focused on
the Web site model, avoiding overlapping with site structure. The maintenance
required by new Web site changes will be isolated inside this model layer. Any
future modifications on the structure of the Web site will need only to change
the semantic annotation for the Web site, and all the Wrappers that make use
of these annotations will not need to be changed.
    One of the main problems raised with the navigation model generation is
the election of a point of view. In [11], it is indicated that a Web navigation
model can be generated from three points of view: from server point of view,
analyzing physical structure of Web site; from client point of view, analyzing
client interaction with Web site; and from a hybrid point of view as a combination
of client and server point of view. In our work we have chosen to follow the client
point of view because of the following reasons:
 – The navigation model must support the changeableness and diversity of Web
   content. Client side technologies like AJAX or Flash are widespread. The
   model must support also this kind of content.
 – It is non intrusive; it does not require to change the Web site being annotated
   as other semantic annotation methods like RDFa[12] and Microformats[10].
 – Client-only point of view allow third party and end users to participate and
   collaborate in the creation of annotations about any Web site because they
   will not have access to the server.
    In this document, section 2 will introduce previous works related with Deep
Web navigation modeling and data extraction. The annotation model for ex-
pressing navigation graphs that we present is described in section 3 by defining
its main classes and properties. Also we present an example of annotation for a
shop Web site that uses our model. Section 4, describes how can be used the an-
notations for the extraction of information by using an example that performs
a query over different sources; and finally, future works and conclussions are
described in section 5.


2      Related Works
The task of generating a navigation model from a Web Site has been previously
faced, but previous works do not provide a Web model annotations formalization.
 7
     http://groups.csail.mit.edu/uid/chickenfoot/
 8
     http://openkapow.com/


                                           2
                                                                     ComposableWeb'09

There were attempts to automatically extract the model using real navigation
examples like [1], where the authors make use of navigation examples that were
extracted by recording and replaying the actions performed by a user and [11],
focused on generation of models for visualization of Web sites hierarchy.
    Deep Web navigation model generation is treated by [13], where the authors
generate a navigation model where they use keyword-matching for identifying
different Deep Web pages. Other work more focused on interacting with Deep
Web sites is Transcendence[2], a system that allows users to generalize their
queries for expanding their search scope. It allows also to define data extrac-
tion patterns for obtaining output data that may be combined with other data
sources.
    One of the main problems of Deep Web remains in that a Deep Web page
cannot be always represented uniquely with an URL9 . The problem of refer-
encing Deep Web pages is addressed in [8], where the authors present a way of
creating bookmarks of a Deep Web page using the sequence of steps specified
with Chickenfoot scripts that simulate the user interaction in order to reach the
bookmarked page. This is combined with images that show the visual represen-
tation of the bookmarked page.
    Extracting semantic data from Web sites is a problem that have been faced
in Marmite[16], a system that provides an end-user interface that allows him to
construct the workflow needed for extracting the data, or PiggyBank [9], a system
where the user can make use of scripts called Screen Scrapers for converting
HTML to semantic data in RDF. Related with this last work is Sifter, a tool
that
    In our demo system we use Chickenfoot as Wrapper development tool. The
main characteristics of this tool and its natural language references to HTML
elements are presented on [3] and [4]. Chickenfoot enable the specification of
client-side Web interactions with a simple Javascript based language.


3     Deep Web Annotation Model
The objective of a Web client is to reach a specific state through interacting
with the Web. Our model represent the states and transitions that composes
the navigation as a graph that describes all possible situations that could occur
in a Web site from client’s point of view. In the graph, vertexes represents all
possible logical states that require an action produced by the user, while edges
represent the actions produced that allow the transitions between logical states.
    Every state could be divided in elements called fragments, and also these
fragments could be divided into new fragments. Every fragment represents a type
of semantic content that can be extracted by selecting part of the element that
it belongs. Figure 1 shows an example of state division in different fragments.
Fragments of logical states will allow us to extract semantic information from
Deep Web pages if we know the location of the state inside the navigation graph
of the Web site.
9
    Uniform Resource Locator, defined on http://tools.ietf.org/html/rfc1738


                                          3
ComposableWeb'09




                           Fig. 1. States and Fragments



    A transition represents the actions available for the user. These actions will
allow changing among different states in the Web site. Transitions are composed
of, first, an ordered sequence of interactions that originates the change of state,
and second, a list of all possibe destinations that could be feasible by using the
transition. There could be different possible destinations because the Web site
could act in different ways as a consequence of dynamic factors like the state of
the service framework, the interactions historical, date and time, etc.
    Our model of states and transitions for the navigation graph is represented
by the following types of elements:

 1. PageState: a uniquely identifying state that represents a Deep Web page. A
    state contains fragments.
 2. Fragment: represents an element inside a PageState or another Fragment. It
    is domain of the following properties:
    (a) fragmentOf: Defines this fragment as part of another fragment or part of
        a PageState as a hierarchy.
    (b) locatedBy: a XPath expression that identifies the position of the fragment
        inside the XHTML representation of the PageState.
    (c) numResults: an integer that defines how many times this fragment ap-
        pears inside his father Fragment or PageState in hierarchy.

                                        4
                                                                    ComposableWeb'09

    (d) optional: a boolean that indicates if the fragment appears optionally in-
         side his father Fragment or PageState. It may happen when a page has
         variable elements.
    (e) semantic: a set of RDF triples that represents the knowledge refered by
         this fragment. This property is also defined in Input and Action.
 3. transitions: represents all possible transitions to other states that could be
    followed from this state. It has the following properties:
    (a) actions: any transition is originated by an ordered sequence of actions
         (instances of Action class)
    (b) sources and destinations: all possible states that could be source or des-
         tination of this transition respectively.
    (c) precondition and postcondition: preconditions and postconditions required
         in order to use this transition for travelling from sources to destinations.
         Postconditions can be used for distinguishing between different possible
         destinations.
 4. Action: an interaction that could be performed over a fragment. It contains
    the following properties:
    (a) hasType: type of interaction (clicking element, selecting element, enter-
         ing text. . . ). It is represented by a Chickenfoot command in our demo
         annotations.
    (b) inputs: all the form values needed for performing the interaction are
         refered in this property as a list that contains elements of type Input.
         For each input it must be provided a name and a description.

    We have represented this formalization in an OWL10 ontology that can be
accessed in [15].
    In figure 2 we have represented an example of the annotated navigation
model for searching products inside a typical Shop of Books site. From initial
page at this site represented by node state0, there are two fragments: element0
(a searching textbox) and element1 (a button that initiates the searching task).
From state0 it is possible to go to state1 through transition0. This transition re-
quires to perform two actions (represented by the orderedActions list of actions):
the first action is performed by inserting a search string inside element0 textbox
and the second action is performed by clicking element1 button. At state1, there
are three fragments that can be accessed: element2, element3 and element4. Be-
cause each of them is a part of other fragment, the XPath expression referred by
the locatedBy property is relative to its father’s locatedBy property. For example,
element4 is constructed with element3 and element2 locations, and so its location
should be //div[@id=’atfResults’][$INDEX]//div[@class=’productPrice’].
    In this figure we have used an hypothetical ontology for defining concepts of
Shops, but the annotation model presented can be combined with any ontology
for defining semantic knowledge inside the Fragments, Actions or Inputs of the
model. This knowledge can be provided as RDF data inside the property semantic
of these elements.
10
     http://www.w3.org/TR/owl-features/


                                          5
ComposableWeb'09




                                                                          Shop of Books Web Site

   FRAGMENT                      element4
    locatedBy        //div[@class=’productTitle’]            FRAGMENT                       element1                   FRAGMENT                   element0
                    ADD({this log:content ?text .             locatedBy     //input[@id=’navGoButtonPanel’]              locatedBy    //input[@id=’twotabsearchtextbox’]
                       this :fragmentOf ?father.}
    semantic                                                  semantic                                                   semantic
                                log:implies
                  {?father shop:productTitle ?text.})


                                   fragmentOf                                          fragmentOf                  fragmentOf


          FRAGMENT                          element3
               locatedBy                   [$INDEX]
                                                                                  state0
                                ADD(this a shop:Product.)
               semantic
                           ADD(this shop:searchedBy :searchText.)


                                           fragmentOf                                 precond = ’’


                    FRAGMENT                    element2
                      locatedBy          //div[@id=’atfResults’]              transition0
                      semantic     ADD(this a shop:ListOfProducts.)


                                                fragmentOf            postcond = ’’ orderedActions

                                                                   ACTION enter(element0, $INPUT);
                                               state1
                                                                   semantic


                                                                               next              inputs

                                                                                                INPUT     $SEARCHED_PRODUCT
                                                                                                 type              rdfs:String
                                                        ACTION click(element1);               description String representing product
                                                        semantic                                         ADD({this log:content ?text}
                                                                                                                   log:implies
                                                                                               semantic
                                                                                                            {:searchText a :Variable.
                                                                                                        :searchText log:content ?text.})




         Fig. 2. Annotated navigation model for searching at Shop of Books site




                                                                                      6
                                                                   ComposableWeb'09

    Representing the semantic of a specific element inside a state for a Deep Web
site requires not only the knowledge inferred from the specific state, but also the
knowledge of all the transitions that have been followed for reaching the state.
This knowledge may be transformed during the transitions, and new knowledge
may be added or removed from the client’s working memory of assertions, de-
pending on the client interactions with the Deep Web site, as in a Production
System or Rule-Based System [5].
    As can be seen in figure 2, Fragment, Input and Action have defined the
semantic property that indicates which knowledge (represented as RDF triples
or inference rules) is added (ADD) or deleted (DEL) from the working memory.
Adding a RDF triple simply adds itself to the working memory, while adding a
RDF rule executes it inside working memory and every time new RDF triples
are added, the rule must be reapplied. Deleting a triple or a rule eliminates its
effect from the working memory. The effect of adding or removing RDF data of
client’s working memory follows these rules:

 1. If the client is located at a State that contains fragments, the semantic prop-
    erty of the fragments is processed inside working memory from outer frag-
    ments to inner fragments following the fragmentOf property. Fragments at
    the same level of indexation can be processed in any order.
 2. If the client has travelled through a Transition that contains a ordered list of
    actions, the semantic property of the actions is processed following the same
    order of the ordered actions list.
 3. If the client uses an input defined in a fragment of a State or in an action
    of a Transition, the semantic property of the input is processed after all the
    other semantic properties of the State or Transition.

    Semantic information is associated with every instance of Fragment, Action
or Input by using the semantic property. With this property, the user that is
annotating a Web site indicates which kind of information does the fragment,
action or input represents. Its content is expressed in RDF.
    For defining semantic information, in figure 2 we make use of the following
properties and concepts (based on the built-in CWM reasoner functions11 ):

 – log:implies → Property that relates antecedents and consequents of a RDF
   expressed rule. Antecedents and consequents are defined between brackets {
   and }.
 – log:content → This property relates the logical representation of an element
   with its string representation. It is used for defining the text content of an
   input, or for defining the specific values of an information.
 – this → When it is used inside the semantic property of an element, it repre-
   sents the element itself. It is used for adding knowledge to an element.

   In order to facilitate sharing and reusing annotations, it is needed the use of
ontologies for modeling this semantic content.
11
     http://www.w3.org/2000/10/swap/doc/CwmBuiltins.html


                                         7
ComposableWeb'09

4      Data Extraction using Annotations

The content of the semantic property allows to locate a particular information
inside the navigation map by performing a query that specifies the conditions in
which the information can be found in the working memory. As our model deals
with knowledge expressed as RDF triples, we have selected SPARQL12 as query
language for this purpose. SPARQL allows to indicate the Named Graph[6] that
a set of conditions are referring. We make use of this functionality for relating
annotations of different Deep Web sites in order to perform a distributed query
among their graphs. Figure 3 shows an example of query that uses two different
maps. The SPARQL query requires the price of a book that fulfills the following
conditions expressed in the WHERE part of the query:

 1. Select from RSS Web Site any element identified as Product that has a
    defined title
 2. Select from Shop of Books Web Site any element identified as Product that
    has been searched in the site using the string that represents the title of the
    product from RSS Web Site previously obtained

    A set of conditions expressed for a specific navigation model in the query can
be achieved by a list of transitions. The actions of these transitions could need
to provide client inputs. Also these inputs could be needed for accessing specific
fragments in a state. In the example at figure 3, RSS map requires an input
called INDEX for accessing a fragment inside rss state0, and Shop of Books map
requires the input SEARCHED PRODUCT for performing the actions of transi-
tion0. Inputs are the points where the SPARQL query can relate data among
different maps. Because inputs require that an information must be supplied,
the SPARQL query must face with the possible situations with these rules:

 – If the conditions states clearly the specific value of the input, use this value.
 – If the conditions indicate that the information required by the input must be
   obtained from another graph, then the query must first perform its actions
   in that other graph. This happens in the example with Shop of Books map
   at condition ?product2 shop:searchedBy ?title because title is refered by the
   RSS map.
 – If the information required can not be infered, then the SPARQL query must
   use all possible informations that could be used for the input. In the example,
   this happens with the input INDEX, that is not provided, so the query must
   iterate among all the elements.

    We have developed a demo system that may be accessed through [14]. Our
demo generates Web wrappers scripts composed of Chickenfoot 13 commands
that could be executed in Firefox with Chickenfoot plugin installed. Chicken-
foot is a programming environment that provides a set of special functions for
12
     http://www.w3.org/TR/rdf-sparql-query/
13
     http://groups.csail.mit.edu/uid/chickenfoot/


                                           8
                                                                                                                                                             ComposableWeb'09

                                                                                                                           RSS Interesting Books

                                                                                                             FRAGMENT                    element2
                          Shop of Books Web Site
                                                                                                              locatedBy                     /title
                                 transition0                                                                                 ADD({this log:content ?text .
                                                                                                                                this :fragmentOf ?father.}
                                                                                                               semantic
                                                                                                                                        log:implies
                                                                                                                           {?father shop:productTitle ?text.})


                                      orderedActions                                                                                 fragmentOf


                                                                                                                 FRAGMENT              element1
             ACTION enter(element0, $SEARCHED_PRODUCT);
                                                                                                                  locatedBy            [$INDEX]
             semantic
                                                                                                                  semantic     ADD(this a shop:Product.)


                              nextAction       inputs                                                                     inputs                    fragmentOf


                                   INPUT     $SEARCHED_PRODUCT                    INPUT              $BOOK_INDEX
                                    type              rdfs:String                  type                rdfs:Integer                    FRAGMENT                         element0
    ACTION click(element1);      description String representing product        description     Position of book inside list            locatedBy                         //item
    semantic                                 ADD({this log:content ?text}                      ADD({this log:content ?text}
                                                                                                                                                        ADD(this a shop:ListOfProducts.)
                                                      log:implies                                       log:implies                      semantic
                                  semantic                                       semantic                                                             ADD(this shop:searchedBy :searchText.)
                                               {:searchText a :Variable.                     {:positionSelected a :Variable.
                                           :searchText log:content ?text.})               :positionSelected log:content ?text.})


                                                                                                                                                                      fragmentOf


                                 QUERY          GOAL DEFINITION
                                         SELECT ?price
                                         FROM NAMED 
                                         FROM NAMED 
                                         WHERE {
                                         GRAPH  {
                                                                                                                                                                 rss_state0
                                  sparql ?product a shop:Product .
                                          ?product shop:productTitle ?title.}
                                         GRAPH {
                                         ?product2 a shop:Product .
                                         ?product2 :searchedBy ?title .
                                          ?product2 :productPrice ?price .}}




                                           Fig. 3. Example querying over different maps


performing Web tasks like clicking a link, entering data in a HTML form, etc.
Chickenfoot scripts are written in a superset of Javascript. One of its main char-
acteristic is its support of natural language naming for HTML elements which
eases development of Web automatic tasks to end users [3].
    The scripts are generated from SPARQL queries that can use annotations ex-
pressed in the formalization that we have presented in this article, also accesible
as OWL at URL [15]. Although with SPARQL we can not define very complex
tasks, we think it is a good starting point for defining a more powerful language
that may be used in a semantic-oriented Web Wrappers development. We think
this new approach may be useful for solving the drawbacks of previous Web
Wrappers development on Deep Web sites, like dependencies with Web struc-
ture, constant maintenance of wrappers scripts, the need of strong knowledge of
the physical structure of accessed Web sites, etc.


5         Future works

Accessing and integrating data from non-structured heterogeneous sources is
a problem that currently is solved with Web Wrappers despite its drawbacks.
Web Wrappers are also tools that may be used to give structure to that non-
structured information and made it available to the Web of Data. We think that
wrapper development must be adapted to the new environment of linked data
using semantic-oriented wrapper definitions, and not site-specific implementa-
tions. In order to achieve this, we are interested in researching more powerful

                                                                                              9
ComposableWeb'09

languages and development tools for this new semantic approach of semantic
wrapper development.
    We think our model will improve development of Wrappers, because all the
Web site structure changes will require only to modify the annotation model,
and all Wrappers that make use of the annotations will be corrected. However,
it would be adequate an exhaustive evaluation of user effort with our annotation
model, that will be accomplished in future work.
    We are interested in continuing working on ontologies integration with se-
mantic wrapper implementations in order to exploit the common concepts among
different Web sites. The same semantic wrapper implementation may be used in
any Web site that is annotated using the same ontology.


6    Acknowledgements

This work has been partially funded by the spanish Ministry of Education and
Science, project ITACA No. TSI2007-65393-C02-01


References

 1. Robert Baumgartner, Michal Ceresna, and Gerald Ledermuller. Deep web nav-
    igation in web data extraction. In CIMCA ’05: Proceedings of the International
    Conference on Computational Intelligence for Modelling, Control and Automation
    and International Conference on Intelligent Agents, Web Technologies and Inter-
    net Commerce Vol-2 (CIMCA-IAWTIC’06), volume 2, pages 698–703, Washington,
    DC, USA, 2005. IEEE Computer Society.
 2. Jeffrey P. Bigham, Anna C. Cavender, Ryan S. Kaminsky, Craig M. Prince, and
    Tyler S. Robison. Transcendence: enabling a personal view of the deep web. In IUI
    ’08: Proceedings of the 13th international conference on Intelligent user interfaces,
    pages 169–178, New York, NY, USA, 2008. ACM.
 3. Michael Bolin and Robert C. Miller. Naming page elements in end-user web au-
    tomation. SIGSOFT Softw. Eng. Notes, 30(4):1–5, 2005.
 4. Michael Bolin, Matthew Webber, Philip Rha, Tom Wilson, and Robert C. Miller.
    Automation and customization of rendered web pages. In UIST ’05: Proceedings
    of the 18th annual ACM symposium on User interface software and technology,
    pages 163–172, New York, NY, USA, 2005. ACM.
 5. Ronald Brachman and Hector Levesque. Knowledge Representation and Reasoning
    (The Morgan Kaufmann Series in Artificial Intelligence). Morgan Kaufmann, May
    2004.
 6. Jeremy J. Carroll, Christian Bizer, Pat Hayes, and Patrick Stickler. Named graphs,
    provenance and trust. In WWW ’05: Proceedings of the 14th international confer-
    ence on World Wide Web, pages 613–622, New York, NY, USA, 2005. ACM.
 7. Sudarshan Chawathe, Hector Garcia-molina, Joachim Hammer, Kelly Irel, Yan-
    nis Papakonstantinou, Jeffrey Ullman, and Jennifer Widom. The tsimmis project:
    Integration of heterogeneous information sources. In In Proceedings of IPSJ Con-
    ference, pages 7–18, 1994.


                                          10
                                                                    ComposableWeb'09

 8. Darris Hupp and Robert C. Miller. Smart bookmarks: automatic retroactive macro
    recording on the web. In UIST ’07: Proceedings of the 20th annual ACM symposium
    on User interface software and technology, pages 81–90, New York, NY, USA, 2007.
    ACM.
 9. David Huynh, Stefano Mazzocchi, and David Karger. Piggy Bank: Experience the
    Semantic Web inside your web browser, volume 5, pages 16–27. Elsevier Science
    Publishers B. V., Amsterdam, The Netherlands, The Netherlands, 2007.
10. Rohit Khare and Tantek Celik. Microformats: a pragmatic path to the semantic
    web. pages 865–866, 2006.
11. Dirk Kukulenz. Adaptive site map visualization based on landmarks. In IV ’05:
    Proceedings of the Ninth International Conference on Information Visualisation,
    pages 473–479, Washington, DC, USA, 2005. IEEE Computer Society.
12. W3C. Rdfa primer. W3C Working Group Note 14 October 2008, October 2008.
13. Yang Wang and Thomas Hornung. Deep web navigation by example. In Tomasz
    Kaczmarek Marek Kowalkiewicz Tadhg Nagle Jonny Parkes Dominik Flejter, Sla-
    womir Grzonkowski, editor, BIS 2008 Workshop Proceedings, Inssbruck, Austria,
    6-7 May 2008, pages 131–140. Department of Information Systems, Pozna, Uni-
    versity of Economics, 2008.
14. WebTLab. Site annotation demo. http://corelli.gast.it.uc3m.es/siteannotation.
15. WebTLab. Site annotation ontology. http://corelli.gast.it.uc3m.es/siteannotation/
    ontology.owl.
16. Jeffrey Wong and Jason I. Hong. Making mashups with marmite: towards end-
    user programming for the web. In CHI ’07: Proceedings of the SIGCHI conference
    on Human factors in computing systems, pages 1435–1444, New York, NY, USA,
    2007. ACM.




                                         11