REFACTORING FRAMENET FOR EFFICIENT RELATIONAL QUERIES. Zeeshan Asim Ahmad, B.S. Problem in Lieu of Thesis Prepared for the Degree of MASTER OF SCIENCE

Size: px
Start display at page:

Download "REFACTORING FRAMENET FOR EFFICIENT RELATIONAL QUERIES. Zeeshan Asim Ahmad, B.S. Problem in Lieu of Thesis Prepared for the Degree of MASTER OF SCIENCE"

Transcription

1 REFACTORING FRAMENET FOR EFFICIENT RELATIONAL QUERIES Zeeshan Asim Ahmad, B.S. Problem in Lieu of Thesis Prepared for the Degree of MASTER OF SCIENCE UNIVERSITY OF NORTH TEXAS December 2003 APPROVED: Paul Tarau, Major Professor Robert Brazile, Graduate Advisor Krishna Kavi, Chair of the Department of Computer Science Sandra L. Terrell, Interim Dean of the Robert B. Toulouse School of Graduate Studies

2 Ahmad, Zeeshan Asim, Refactoring FrameNet for Efficient Relational Queries. Master of Science (Computer Science), December 2003, 43 pp., 2 tables, 3 illustrations, 3 references. The FrameNet database is being used in a variety of NLP research and applications such as word sense disambiguation, machine translation, information extraction and question answering. The database is currently available in XML format. The XML database though a wholesome way of distributing data in its entireness, is not practical for use unless converted to a more application friendly database. In light of this we have successfully converted the XML database to a relational MySQL database. This conversion reduced the amount of data storage amount to less than half. Most importantly the new database enables us to perform fast complex querying and facilitates use by applications and research. We show the steps taken to ensure relational integrity of the data during the refactoring process and a simple demo application demonstrating ease of use.

3 ACKNOWLEDGMENTS I would like to thank two important people, without whom this thesis would not have been possible: my thesis advisor and my fiancée. First I thank my thesis advisor, Dr. Paul Tarau, a talented teacher and passionate scientist. I am indebted and thankful for the fresh new ideas and opportunities he offered. Secondly I would like to thank Jun my fiancée for the encouragement and support she provided throughout my work. ii

4 TABLE OF CONTENTS Page ACKNOWLEDGMENTS..ii LIST OF TABLES.iv LIST OF ILLUSTRATIONS.v Chapter 1. INTRODUCTION TO FRAMENET DATABASE 1 Overview Uses of the FrameNet Database 2. DESCRIPTION OF THE FRAMENET DATABASE... 3 Content of the Database Structure of the XML Database Limitations of the XML Database 3. REFACTORING PROCESS TO MYSQL TM DATABASE....6 Choice of Database Process of Creating the New Database 4. APPLICATION USING JDBC TM QUERY...12 Application Demo Future Work Conclusion APPENDIXES...14 REFERENCES...43 iii

5 LIST OF TABLES 1 MySQL tables for the Frames MySQL tables for the Lexical Units iv

6 LIST OF ILLUSTRATIONS 1 Entity-Relation Diagram for Frames Entity-Relation Diagram for Lexical Units Process diagram v

7 CHAPTER 1 INTRODUCTION TO FRAMENET DATABASE Overview The FrameNet database is the result of the FrameNet project [Baker et al. 1998; Fillmore & Baker 2001]. This database is an online lexical resource that provides a significant portion of the vocabulary of contemporary English. It contains a collection of semantically and syntactically annotated sentences from which structured information and combinatorial possibilities of each item can be retrieved. The project used a descriptive model based on semantic frames [Fillmore 1977, 1982, 1985; Fillmore & Atkins 1988] to create this database. The project enters observations into the database by taking careful annotated attestations taken from corpora. Every sentence is annotated with relation to a given word and is incorporated of phrases that are grammatically labeled to reflect the grammatical relation to the word, the semantic role played within the frame to which the word belongs, and its phrase type. Persons trained in frame semantic theory annotate the semantic roles manually. The syntactic information however is added automatically, and the full structured descriptions are produced automatically. 1

8 Uses of the FrameNet Database The FrameNet database may be used in a variety of NLP research and applications. The goal within the FrameNet is to show that the information recorded and made available in the database is usable for various NLP applications like word sense disambiguation, machine translation, information extraction and question answering. Currently FrameNet work is also taking place for other languages like Japanese, German and Chinese. There is some research in progress at the University of Colorado focusing on creating a semantic parser that produces FrameNet roles for input sentences and have also began work on semantic parsing in Chinese. At ICSI and UC Berkeley, they are investigating the use of the FrameNet semantic resource in Information Extraction (IE) and Natural Language Understanding (NLU). Also at San Diego State University a research team is studying the relation between the frames developed for English and the frames needed to represent Japanese texts. 2

9 CHAPTER 2 DESCRIPTION OF THE FRAMENET DATABASE Content of the Database The FrameNet data is broken into two sets of the data, the frames data and the lexical units data. The released data consists of information on 376 frames, and more than 6,800 lexical units. The data contained in them is available in both human-readable format and XML, designed for use by researchers in NLP, IE, etc. We are using the data provided in XML format for data extraction and programming purposes. The XML data can be queried using XPath Query, however this brings about some problems discussed later in this chapter. Structure of the XML Database The XML database provided for FrameNet database is comprised of one large file "frames.xml" which gives full information on all the frames. There is also one file for each lexical unit. If the lexical unit is annotated, each sentence is given with its text and labels for each of the layers. The file names for the lexical units are of the form lunnnn.xml. The DTD s for the two types of XML files can be found at the FrameNet website and are also provided with the data. I will give an abridge description of the two DTD s. 3

10 This interpretation of the DTD s excludes some elements which are part of the DTD solely for the purpose of formatting the data in XML but do no contain any tangible information. The frames.xml file contains a root element, which contains the 376 frames. Each frame then contains a definition, one or more FE s (Frame Elements), zero or more lemmas and zero or more notes regarding the frame and attributes: ID; name; semantictype; cby; and Cdate. Each FE in turn has a definition and attributes: ID; name; abbrev; cby; cdate; core; semanticrolerank; fgcolors; bgcolors; fgcolorp; and bgcolorp. Every lemma is comprised of zero or more notes, the number of times annotated, total, one or more lexeme and attributes: ID; Type; cby; and cdate. Element lexeme contains it s name and an a breakbefore field. Notes incorporate ID, type, cby and cdate. Lexunit is comprised of a definition, zero or more subcorpus s and attributes: ID; name; frame; and pos. The subcorpus consists of a name and zero or more sentences. Each sentence consists of a text, zero or more layers for the text, zero or more parents and attributes: ID; cby; cdate; and apos. Every layer consists of zero or more labels for that layer of the grammatical interpretation of the sentence text and attributes: ID; name; cby; cdate; lexunitref; frame; and lemma. The labels contain attributes with information: ID; name; cby; cdate; start; end; itype; fgcolors; bgcolors; fgcolorp; and bgcolorp. 4

11 Limitations of the XML Database The XML database though a wholesome way of distributing data in its entireness, is not practical for use unless converted to a more application friendly database. Querying the XML database is very slow and cannot be used for applications and research. Also being in text format, the uncompressed files total approximately 1 GB. Loading such large amount of data would take considerable time. To make the data more useable, it has to be transferred to a more application friendly database. 5

12 CHAPTER 3 REFACTORING PROCESS TO MYSQL TM DATABASE Choice of Database Three desirable features needed for a FrameNet database are data integrity, ease of use and query speed. Integrity of data is important for obvious reasons. Ease of use is important when using the database in an application as well as research. The FrameNet database is very limited when compared to the English language corpora, suggesting that the data is going to grow to many times it current size. We therefore desire a database with fast querying with very large data sets and such a database requires indexing. MySQL database was chosen because it has all three of the desired features. Also MySQL database is available for many common platforms and is free. Process of Creating the New Database The process of creating a new databases required first analyzing the XML database and creating an entity-relation diagram for the new database. Using the entity-relation diagram deriving the required tables becomes and elementary task. Figure1 and Figure2 show the entity-relation diagram for the frames and the lexical units respectively, followed by Table1 and Table2 showing the derived database tables. 6

13 Figure1: Entity-Relation Diagram for Frames 7

14 Table 1: MySQL database tables for the Frames Tables Col number frames fes fnotes lemmas Lexemes lnotes 1 fid feid fnid lid Lexname lnid 2 fname fename type lname breakbefore 3 femantictype abbrev cby pos Lid cby 4 fby cby cdate cby Lname date 5 fdate cdate note cdate note 6 definition core fid annotated lid 7 sementicrolerank fname total lname 8 fgcolors fid 9 bgcolors fname 10 fgcolorp 11 bgcolorp 12 definition 13 fid 14 fname yype 8

15 Figure 2: Entity-Relation Diagram for Lexical Units 9

16 Table 2: MySQL database tables for the Lexical Units Tables Col Number lus subcorpus sentences layers lables parents 1 luid subcorpusname sid laid lid parent 2 luname luid cby laname lname laid 3 frame luname cdate cby cby laname 4 pos apos cdate cdate 5 definition text lexunitref start 6 subcorpusname frame end 7 luid lemma itype 8 luname sid fgcolors 9 bgcolors 10 fgcolorp 11 bgcolorp 12 laid 13 laname 10

17 Figure 3 below shows the diagram for the process employed in converting the XML database to MySQL relational database. The SAX parser used to parse the XML files was downloaded from the Sun Microsystems website and customized to create insert statements in a MySQL batch file. The Java TM programming language code for the SAX parser is in Appendix A. Sample of the MySQL batch file created is in Appendix B. Script to create the tables in the new database is in Appendix C. Figure 3: Process diagram With the above process in place, more data can readily be added to the MySQL database when released by the FrameNet staff. The converted database now consumes less than half the storage memory space. Most importantly data querying is very fast and acceptable for application and research use. A nested query takes 0.01 second. 11

18 CHAPTER 4 APPLICATION USING JDBC TM QUERY Application Demo A demo application program for querying the database for test and performance is in Appendix D. This Java program connects to the MySQL database, which now contains the FrameNet data, to query the database and print the results. The program is given a sentence or a set of words. It parses the set of words and puts each word in a string array. It then takes each word and looks for it in the database and prints the result to screen. Below is an example of the set of words given to the program, the query and the results printed out. Example 1 Input sentence in the demo is There is an abundance of oil in the middle-east. The sql query executed by JDBC is rs = stmt.executequery( SELECT fname, lname FROM lemmas WHERE lname = + words[i] + ); Where word[j] iterates through all the words in the input sentence. Output to the screen is: Trying to connect Conncted! Frame : quantity Lemma : abundance Frame : food Lemma : oil Frame : locative_relation Lemma : in 12

19 Future Work More MySQL framenet database specific work on the JDBC connection is required for it to be more helpful for future research. Such work would include the development of a complete easy to use Java API which will perform faster and complex querying. This would make FrameNet specfic applications and research easier and broaden the use of this database. Conclusion The refactoring of the XML database into a MySQL relational database though a long process requiring careful planning has its rewards. The storage space required has been reduced to less than half. There is no data loading time because the database is ready and waiting to execute queries. Most of all fast and complex queries can easily be performed. 13

20 APPENDIX A SAX PARSER CODE 14

21 // File SAXSample.java import java.io.file; import java.io.inputstream; // Main class for SAX Sample public class SAXSample { // Main method args - String[] arguments public static void main(string[] args) { SAXSample jfs = new SAXSample(); // Create Order's Handler LuHandler ohandler = new LuHandler(); // Create the parser CreateParser parser = new CreateParser(oHandler); String curfilename = ""; String tempstring = ""; File f1; // Parse the XML file, handler generates the output // for loop is used to iterate the file names for the Lexical Unit // as the file names are of the form lunnnn.xml for(int i=1; i<=8000; i++) { curfilename = new String("lu" + i + ".xml"); f1 = new File(curfilename); // the file names are not in sequence so check if the file exists if (f1.exists()) { // prints the name of the current file underprocess System.out.println("Current file : " + curfilename); parser.parse(curfilename); // end if // end for 15

22 // File CreateParser.java import java.io.file; import java.io.inputstream; import javax.xml.parsers.saxparser; import javax.xml.parsers.saxparserfactory; import org.xml.sax.helpers.defaulthandler; import org.xml.sax.xmlreader; // Class to create a parser and parse an XML file public class CreateParser { private DefaultHandler handler; private SAXParser saxparser; private File f1; /** * Constructor handler - DefaultHandler for the SAX parser */ public CreateParser(DefaultHandler handler) { this.handler = handler; create(); /** * Create the SAX parser */ private void create() { try { // Obtain a new instance of a SAXParserFactory. SAXParserFactory factory = SAXParserFactory.newInstance(); // Specifies that the parser produced by this code will provide support for XML // namespaces. factory.setnamespaceaware(true); // Specifies that the parser produced by this code will validate documents as // they are parsed. factory.setvalidating(true); // Creates a new instance of a SAXParser using the currently configured //factory parameters. saxparser = factory.newsaxparser(); catch (Throwable t) { 16

23 t.printstacktrace(); /** * Parse a File file - File */ public void parse(file file){ try{ saxparser.parse(file,handler); // end try catch (Throwable t) { t.printstacktrace(); /** * Parse a URI uri - String */ public void parse(string uri){ try{ saxparser.parse(uri,handler); catch (Throwable t) { t.printstacktrace(); /** * Parse a Stream stream - InputStream */ public void parse(inputstream stream){ try{ saxparser.parse(stream,handler); catch (Throwable t) { t.printstacktrace(); 17

24 // File FrameHander.java import java.io.*; import java.text.numberformat; import org.xml.sax.helpers.defaulthandler; import org.xml.sax.saxexception; import org.xml.sax.helpers.defaulthandler; import org.xml.sax.attributes; // FrameHandler extends DefaultHandler, public class FrameHandler extends DefaultHandler { static private FileWriter out; private int inlemma = 0; private int infe = 0; private int startflag = 0; private String s = ""; private String frameelement = ""; // strings to store the names of the elements in the file "frame.xml" private String ROOT = "root"; private String FRAME = "frame"; private String FES = "fes"; private String FE = "fe"; private String DEFINITION = "definition"; private String LEMMAS = "lemmas"; private String LEMMA = "lemma"; private String NOTES = "notes"; private String NOTE = "note"; private String ANNOTATION = "annotation"; private String ANNOTATED = "annotated"; private String TOTAL = "total"; private String LEXEME = "lexeme"; // strings store the data for be put in the MySQL insert statement private String fid = ""; private String fname =""; private String semantictype = ""; private String fcby = ""; private String fcdate = ""; private String fdefinition = ""; private String feid = ""; 18

25 private String fename = ""; private String abbrev = ""; private String fecby = ""; private String fecdate = ""; private String core =""; private String semanticrolerank = ""; private String fgcolors = ""; private String bgcolors = ""; private String fgcolorp = ""; private String bgcolorp = ""; private String fedefinition = ""; private String fnid = ""; private String fntype = ""; private String fncby = ""; private String fncdate = ""; private String fnnote = ""; private String lid = ""; private String lname = ""; private String pos = ""; private String lcby = ""; private String lcdate = ""; private String annotated = ""; private String total = ""; private String lexname = ""; private String breakbefore = ""; private String lnid = ""; private String lntype = ""; private String lncby = ""; private String lncdate = ""; private String lnnote = ""; /** * Receive notification of the start of an element. namespaceuri - The Namespace URI, or the empty string if the element has no Namespace URI or if Namespace processing is not being performed. localname - The local name (without prefix), or the empty string if Namespace processing is not being performed. qname - The qualified name (with prefix), or the empty string if qualified names are not available. 19

26 atts - The attributes attached to the element. If there are no attributes, it shall be an empty Attributes object. SAXException - Any SAX exception, possibly wrapping another exception. */ public void startelement(string namespaceuri, String localname, String qname, Attributes atts) throws SAXException { if (startflag==0) { try { // Set up output stream out = new FileWriter("createframetables.txt" ); catch (Throwable t) { startflag = 1; frameelement = localname; // collect the attributes of the element 'layer' if (FRAME.equals(localName)) { fid = atts.getvalue("id"); fname = atts.getvalue("name"); semantictype = atts.getvalue("semantictype"); fcby = atts.getvalue("cby"); fcdate = atts.getvalue ("cdate"); // collect the attributes of the element 'fe' if (FE.equals(localName)) { feid = atts.getvalue("id"); fename = atts.getvalue("name"); fename = fename.replace('\'', '@'); abbrev = atts.getvalue("abbrev"); fecby = atts.getvalue("cby"); fecdate = atts.getvalue("cdate"); core = atts.getvalue("core"); semanticrolerank = atts.getvalue("semanticrolerank"); fgcolors = atts.getvalue("fgcolors"); bgcolors = atts.getvalue("bgcolors"); 20

27 fgcolorp = atts.getvalue("fgcolorp"); bgcolorp = atts.getvalue("bgcolorp"); infe = 1; // collect the attributes of the element 'note' if (NOTE.equals(localName)) { if (inlemma == 0) { fnid = atts.getvalue("id"); fntype = atts.getvalue("type"); fncby = atts.getvalue("cby"); fncdate = atts.getvalue("cdate"); else { lnid = atts.getvalue("id"); lntype = atts.getvalue("type"); lncby = atts.getvalue("cby"); lncdate = atts.getvalue("cdate"); // collect the attributes of the element 'lemma' if (LEMMA.equals(localName)) { lid = atts.getvalue("id"); lname = atts.getvalue("name"); lname = lname.replace('\'', '@'); pos = atts.getvalue("pos"); lcby = atts.getvalue("cby"); inlemma = 1; // collect the attributes of the element 'lexeme' if (LEXEME.equals(localName)) { lexname = atts.getvalue("name"); lexname = lexname.replace('\'', '@'); breakbefore = atts.getvalue("breakbefore"); // end startelement /** * Receive notification of character data inside an element. ch - The characters. start - The start position in the character array. 21

28 length - The number of characters to use from the character array. SAXException - Any SAX exception, possibly wrapping another exception. */ public void characters(char[] ch, int start, int length) throws SAXException { // read in the character data inside the element 'definition' if (DEFINITION.equals(frameelement)){ if (infe == 0) { fdefinition = new String(ch, start, length); fdefinition = fdefinition.replace('\'', '@'); else { fedefinition = new String(ch, start, length); fedefinition = fedefinition.replace('\'', '@'); // read in the character data inside the element 'note' if (NOTE.equals(frameelement)) { if (inlemma == 0) { fnnote = new String(ch, start, length); fnnote = fnnote.replace('\'', '@'); else { lnnote = new String(ch, start, length); lnnote = lnnote.replace('\'', '@'); // read in the character data inside the element 'annotated' if (ANNOTATED.equals(frameelement)) { annotated = new String(ch, start, length); // read in the character data inside the element 'total' if (TOTAL.equals(frameelement)) { total = new String(ch, start, length); /* Receive notification of the end of an namespaceuri - The Namespace URI, or the empty string if the element has no Namespace URI or if Namespace processing is not being 22

29 localname - The local name (without prefix), or the empty string if Namespace processing is not being qname - The qualified name (with prefix), or the empty string if qualified names are not SAXException - Any SAX exception, possibly wrapping another exception. */ public void endelement(string namespaceuri, String localname, String qname) throws SAXException { // change all data to lowercase to be stored in the database so that // queries will be stricly use lowercase changetolower(); // write the insert statement for the table 'frame' if (FRAME.equals(localName)) { emit("insert into frames values('" + fid + "','" + fname + "','" + semantictype + "','" + fcby + "','"+ fcdate + "','" + fdefinition + "');"); // write the insert statement for the table 'fe' if (FE.equals(localName)) { emit("insert into fes values('" + feid + "','" + fename + "','" + abbrev + "','" + fecby + "','"+ fecdate + "','" + core + "','" + semanticrolerank + "','" + fgcolors + "','" + bgcolors + "','"+ fgcolorp + "','" + bgcolorp + "','" + fdefinition + "','" + fid + "','" + fname + "');"); infe = 0; // write the insert statement for the table 'note' if (NOTE.equals(localName)) { if (inlemma == 0) { emit("insert into fnotes values('" + fnid + "','" + fntype + "','" + fncby + "','" + fncdate + "','"+ fnnote+ "','" + fid + "','" + fname + "');"); else { emit("insert into lnotes values('" + lnid + "','" + lntype + "','" + lncby + "','" + lncdate + "','"+ lnnote+ "','" + lid + "','" + lname + "');"); // write the insert statement for the table 'lemma' if (LEMMA.equals(localName)) { 23

30 emit("insert into lemmas values('" + lid + "','" + lname + "','" + pos + "','" + lcby + "','"+ lcdate + "','" + annotated + "','" + total + "','" + fid + "','" + fname + "');"); inlemma = 0; // write the insert statement for the table 'lexeme' if (LEXEME.equals(localName)) { emit("insert into lexemes values('" + lexname + "','" + breakbefore + "','" + lid + "','" + lname + "');"); // end of endelement // function changes all the required string data to lowercase private void changetolower() { fid = fid.tolowercase(); fname = fname.tolowercase(); semantictype = semantictype.tolowercase(); fcby = fcby.tolowercase(); fcdate = fcdate.tolowercase(); fdefinition = fdefinition.tolowercase(); feid = feid.tolowercase(); fename = fename.tolowercase(); abbrev = abbrev.tolowercase(); fecby = fecby.tolowercase(); fecdate = fecdate.tolowercase(); core = core.tolowercase(); semanticrolerank = semanticrolerank.tolowercase(); fgcolors = fgcolors.tolowercase(); bgcolors = bgcolors.tolowercase(); fgcolorp = fgcolorp.tolowercase(); bgcolorp = bgcolorp.tolowercase(); fedefinition = fedefinition.tolowercase(); fnid = fnid.tolowercase(); fntype = fntype.tolowercase(); fncby = fncby.tolowercase(); fncdate = fncdate.tolowercase(); fnnote = fnnote.tolowercase(); lid = lid.tolowercase(); lname = lname.tolowercase(); pos = pos.tolowercase(); lcby = lcby.tolowercase(); lcdate = lcdate.tolowercase(); annotated = annotated.tolowercase(); 24

31 total = total.tolowercase(); lexname = lexname.tolowercase(); breakbefore = breakbefore.tolowercase(); lnid = lnid.tolowercase(); lntype = lntype.tolowercase(); lncby = lncby.tolowercase(); lncdate = lncdate.tolowercase(); lnnote = lnnote.tolowercase(); // used to write the MySQL insert statements to file private void emit(string s) throws SAXException { try { out.write(s); nl(); out.flush(); catch (IOException e) { throw new SAXException("I/O error", e); // used to write an end of line to the file. private void nl() throws SAXException { String lineend = System.getProperty("line.separator"); try { out.write(lineend); catch (IOException e) { throw new SAXException("I/O error", e); 25

32 // File LuHander.java import java.io.*; import java.text.numberformat; import org.xml.sax.helpers.defaulthandler; import org.xml.sax.saxexception; import org.xml.sax.helpers.defaulthandler; import org.xml.sax.attributes; // LuHandler extends DefaultHandler public class LuHandler extends DefaultHandler { static private FileWriter out; private int inlemma = 0; private int infe = 0; // flag used to set the debugger on=1 / off=0; private int debugerror = 0; private int startflag = 0; private String s = ""; private String luelement = ""; // names of the element in the XML lexical unit files private String ROOT = "root"; private String DEFINITION = "definition"; private String NOTES = "notes"; private String NOTE = "note"; private String LEXUNIT = "lexunit"; private String SUBCORPUS = "subcorpus"; private String SENTENCE = "sentence"; private String TEXT = "text"; private String LAYER = "layer"; private String LABEL = "label"; private String PARENT = "parent"; // lexunit processing strings private String luid = ""; private String luname = ""; private String luframe = ""; private String lupos = ""; private String ludefinition = ""; private String sid = ""; 26

33 private String scby = ""; private String scdate = ""; private String sapos = ""; private String stext = ""; private String subcorpusname = ""; private String laid = ""; private String laname = ""; private String lacby = ""; private String lacdate = ""; private String lalexunitref = ""; private String laframe = ""; private String lalemma = ""; private String labid = ""; private String labname = ""; private String labcby = ""; private String labcdate = ""; private String labstart = ""; private String labend = ""; private String labitype = ""; private String labfgcolors = ""; private String labbgcolors = ""; private String labfgcolorp = ""; private String labbgcolorp = ""; private String parent = ""; /** * Receive notification of the start of an element. namespaceuri - The Namespace URI, or the empty string if the element has no Namespace URI or if Namespace processing is not being performed. localname - The local name (without prefix), or the empty string if Namespace processing is not being performed. qname - The qualified name (with prefix), or the empty string if qualified names are not available. atts - The attributes attached to the element. If there are no attributes, it shall be an empty Attributes object. SAXException - Any SAX exception, possibly wrapping another exception. */ 27

34 public void startelement(string namespaceuri, String localname, String qname, Attributes atts) throws SAXException { if (startflag==0) { try { // Set up output file stream when the start of the first element is detected out = new FileWriter("createlutables.txt" ); catch (Throwable t) { startflag = 1; if (debugerror==1) System.out.println("In the startelement : \n"); luelement = localname; // collect the attributes of the element 'layer' if (LAYER.equals(localName)) { laid = atts.getvalue("id"); laname = atts.getvalue("name"); laname = laname.replace('\'', '@'); lacby = atts.getvalue("cby"); lacdate = atts.getvalue ("cdate"); lalexunitref = atts.getvalue ("lexunitref"); laframe = atts.getvalue ("frame"); lalemma = atts.getvalue ("lemma"); lalemma = lalemma.replace('\'', '@'); if (debugerror == 1) System.out.println("laid =" + laid + "\n"); // collect the attributes of the element 'label' if (LABEL.equals(localName)) { labid = atts.getvalue("id"); labname = atts.getvalue("name"); labname = labname.replace('\'', '@'); labcby = atts.getvalue("cby"); labcdate = atts.getvalue("cdate"); labstart = atts.getvalue("start"); labend = atts.getvalue("end"); labitype = atts.getvalue("itype"); 28

35 labfgcolors = atts.getvalue("fgcolors"); labbgcolors = atts.getvalue("bgcolors"); labfgcolorp = atts.getvalue("fgcolorp"); labbgcolorp = atts.getvalue("bgcolorp"); if (debugerror == 1) System.out.println("labid =" + labid + "\n"); // collect the attributes of the element 'lexunit' if (LEXUNIT.equals(localName)) { luid = atts.getvalue("id"); luname = atts.getvalue("name"); luname = luname.replace('\'', '@'); luframe = atts.getvalue("frame"); lupos = atts.getvalue("pos"); if (debugerror == 1) System.out.println("luid =" + luid + "\n"); // collect the attributes of the element 'sentence' if (SENTENCE.equals(localName)) { sid = atts.getvalue("id"); scby = atts.getvalue("cby"); scdate = atts.getvalue ("cdate"); sapos = atts.getvalue ("apos"); if (debugerror == 1) System.out.println("sid =" + sid + "\n"); // collect the attributes of the element 'subcorpus' if (SUBCORPUS.equals(localName)) { subcorpusname = atts.getvalue("name"); if (debugerror == 1) System.out.println("subcorpusname =" + subcorpusname + "\n"); // end startelement /** 29

36 * Receive notification of character data inside an element. ch - The characters. start - The start position in the character array. length - The number of characters to use from the character array. SAXException - Any SAX exception, possibly wrapping another exception. */ public void characters(char[] ch, int start, int length) throws SAXException { // read in the character data inside the element 'definition' if (DEFINITION.equals(luelement)){ ludefinition = new String(ch, start, length); ludefinition = ludefinition.replace('\'', '@'); // read in the character data inside the element 'text' if (TEXT.equals(luelement)) { stext = new String(ch, start, length); stext = stext.replace('\'', '@'); // read in the character data inside the element 'parent' if (PARENT.equals(luelement)) { parent = new String(ch, start, length); /** * Receive notification of the end of an element. namespaceuri - The Namespace URI, or the empty string if the element has no Namespace URI or if Namespace processing is not being performed. localname - The local name (without prefix), or the empty string if Namespace processing is not being performed. qname - The qualified name (with prefix), or the empty string if qualified names are not available. SAXException - Any SAX exception, possibly wrapping another exception. */ public void endelement(string namespaceuri, String localname, String qname) throws SAXException { if (debugerror == 1) 30

37 System.out.println("endElement =" + luelement + "\n"); // change all data to lowercase to be stored in the database so that //queries will be stricly use lowercase changetolower(); // write the insert statement for the table 'lu' if (LEXUNIT.equals(localName)) { emit("insert into lus values('" + luid + "','" + luname + "','" + luframe + "','" + lupos + "','"+ ludefinition + "');"); // write the insert statement for the table 'sentences' if (SENTENCE.equals(localName)) { emit("insert into sentences values('" + sid + "','" + scby + "','" + scdate + "','"+ sapos + "','" + stext + "','" + subcorpusname + "','" + luid + "','" + luname + "');"); // write the insert statement for the table 'subcorpus' if (SUBCORPUS.equals(localName)) { emit("insert into subcorpus values('" + subcorpusname + "','" + luid + "','" + luname + "');"); // write the insert statement for the table 'layers' if (LAYER.equals(localName)) { emit("insert into layers values('" + laid + "','" + laname + "','" + lacby + "','" + lacdate + "','"+ lalexunitref+ "','" + laframe + "','" + lalemma + "','" + sid + "');"); // write the insert statement for the table 'labels' if (LABEL.equals(localName)) { if (debugerror == 1) System.out.println("Inside endelement LABEL :" + labid + "\n"); emit("insert into labels values('" + labid + "','" + labname + "','" + labcby + "','"+ labcdate + "','" + labstart + "','" + labend + "','" + labitype + "','" + labfgcolors + "','"+ labbgcolors + "','" + labfgcolorp + "','" + labbgcolorp + "','" + laid + "','" + laname + "');"); if (debugerror == 1) System.out.println("after emitting label =" + labid + "\n"); 31

38 // write the insert statement for the table 'parents' if (PARENT.equals(localName)) { if (debugerror == 1) System.out.println("parent =" + parent); emit("insert into parents values('" + parent + "','" + laid + "','" + laname + "');"); // end of endelement // function changes all the required string data to lowercase private void changetolower() { luid = luid.tolowercase(); luname = luname.tolowercase(); luframe = luframe.tolowercase(); lupos = lupos.tolowercase(); ludefinition = ludefinition.tolowercase(); sid = sid.tolowercase(); scby = scby.tolowercase(); scdate = scdate.tolowercase(); stext = stext.tolowercase(); subcorpusname = subcorpusname.tolowercase(); laid = laid.tolowercase(); laname = laname.tolowercase(); lacby = lacby.tolowercase(); lacdate = lacdate.tolowercase(); lalexunitref = lalexunitref.tolowercase(); laframe = laframe.tolowercase(); lalemma = lalemma.tolowercase(); labid = labid.tolowercase(); labname = labname.tolowercase(); labcby = labcby.tolowercase(); labcdate = labcdate.tolowercase(); labfgcolors = labfgcolors.tolowercase(); labbgcolors = labbgcolors.tolowercase(); labfgcolorp = labfgcolorp.tolowercase(); labbgcolorp = labbgcolorp.tolowercase(); parent = parent.tolowercase(); // used to write the MySQL insert statements to file 32

39 private void emit(string s) throws SAXException { try { out.write(s); nl(); out.flush(); catch (IOException e) { throw new SAXException("I/O error", e); // used to write an end of line to the file. private void nl() throws SAXException { String lineend = System.getProperty("line.separator"); try { out.write(lineend); catch (IOException e) { throw new SAXException("I/O error", e); 33

40 APPENDIX B SAMPLE MYSQL BATCH FILE 34

41 insert into labels values(' ','pun','bcronin',' ','157','157','null','black','white','black','white',' ','pos'); insert into layers values(' ','pos','bcronin',' ','7001','abundance','surfaced',' '); insert into labels values(' ','location','hmcarvey',' ','66','69','null','white','red','white','red',' ','fe'); insert into parents values(' ',' ','fe'); insert into layers values(' ','fe','bcronin',' ','7001','abundance','surfaced',' '); insert into labels values(' ','head','hmcarvey',' ','66','69','null','white','red','white','red',' ','gf'); 35

42 APPENDIX C SCRIPT CREATING THE MYSQL TABLES 36

43 CREATE TABLE frames (fid VARCHAR(30),fname VARCHAR(30),semantictype VARCHAR(30),cby VARCHAR(30),cdate VARCHAR(30),definition TEXT,PRIMARY KEY(fname)); CREATE TABLE fes (feid VARCHAR(30),fename VARCHAR(30),abbrev VARCHAR(30),cby VARCHAR(30),cdate VARCHAR(30),core VARCHAR(30),sementicrolerank VARCHAR(30),fgcolors VARCHAR(30),bgcolors VARCHAR(30), fgcolorp VARCHAR(30), bgcolorp VARCHAR(30), definition TEXT, fid VARCHAR(30), fname VARCHAR(30),PRIMARY KEY(feid(30),fename(30))); CREATE TABLE fnotes (fnid VARCHAR(30),type VARCHAR(30),cby VARCHAR(30),cdate VARCHAR(30),note VARCHAR(30), fid VARCHAR(30), fname VARCHAR(30), PRIMARY KEY(fnid)); CREATE TABLE lemmas (lid VARCHAR(30),lname VARCHAR(30),pos VARCHAR(30),cby VARCHAR(30),cdate VARCHAR(30),annotated VARCHAR(30),total VARCHAR(30), fid VARCHAR(30), fname VARCHAR(30),PRIMARY KEY(lid(30),lname(30))); CREATE TABLE lexemes (lexname VARCHAR(30),breakbefore VARCHAR(30),lid VARCHAR(30),lname VARCHAR(30), PRIMARY KEY(lexeme(30,lid(30),lname(30))); CREATE TABLE lnotes (lnid VARCHAR(30),type VARCHAR(30),cby VARCHAR(30),cdate VARCHAR(30),note VARCHAR(30),lid VARCHAR(30), lname VARCHAR(30),PRIMARY KEY(lnid(30))); CREATE TABLE lus (luid VARCHAR(30),luname VARCHAR(30),frame VARCHAR(30),pos VARCHAR(30),definition TEXT,PRIMARY KEY(luid(30),luname(30))); CREATE TABLE subcorpus (subcorpus VARCHAR(30),luid VARCHAR(30),luname VARCHAR(30), PRIMARY KEY (subcorpus(30),luid(30),luname(30))); CREATE TABLE sentences (sid VARCHAR(30),cby VARCHAR(30),cdate VARCHAR(30),apos VARCHAR(30),sentence_text TEXT,subcorpusname VARCHAR(30),luid VARCHAR(30),luname VARCHAR(30),PRIMARY KEY(sid(30))); CREATE TABLE layers (laid VARCHAR(30),laname VARCHAR(30),cby VARCHAR(30),cdate VARCHAR(30),lexunitref VARCHAR(30),frame 37

44 VARCHAR(30),lemma VARCHAR(30),sid VARCHAR(30),PRIMARY KEY(laid(30),laname(30))); CREATE TABLE labels (lid VARCHAR(30),lname VARCHAR(30),cby VARCHAR(30),cdate VARCHAR(30),start VARCHAR(30),end VARCHAR(30),itype VARCHAR(30),fgcolors VARCHAR(30),bgcolors VARCHAR(30),fgcolorp VARCHAR(30),bgcolorp VARCHAR(30),laid VARCHAR(30),laname VARCHAR(30),PRIMARY KEY(lid(30),lname(30))); CREATE TABLE parents (parent VARCHAR(30),laid VARCHAR(30),laname VARCHAR(30), PRIMARY KEY(parent(30),laid(30),laname(30))); 38

45 APPENDIX D JDBC CONNECTION CODE 39

46 // File "SqlConn.java" import java.sql.*; import java.sql.connection; import java.sql.drivermanager; import java.sql.sqlexception; public class SqlConn { public static String inputsentence="there is an abundance of oil in the middle-east."; public static void main(string[] args) { try { // The newinstance() call is a work around for some // broken Java implementations Class.forName("com.mysql.jdbc.Driver").newInstance(); catch (Exception ex) { // handle the error try { System.out.println("Trying to connect..."); Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/framenet"); System.out.println("connected!"); // now that conn has created JDBC connection Statement stmt = null; ResultSet rs = null; int strlength = inputsentence.length(); int index=0; int wordindex=0; int spaceindex=0; int newspaceindex=0; String words []= new String[30]; int lastindex=inputsentence.lastindexof(" "); int numwords=0; 40

47 while (newspaceindex < strlength) { if (newspaceindex==lastindex) { words[index]=inputsentence.substring(lastindex+1,strlength-1); newspaceindex=strlength; else { newspaceindex=inputsentence.indexof(' ',spaceindex+1); if (spaceindex!=0) spaceindex++; words[index] = inputsentence.substring(spaceindex,newspaceindex); numwords++; spaceindex=newspaceindex; index++; // end while try { stmt = conn.createstatement(); for(int i=0; i<numwords; i++) { // looking in lemmas for the frames rs = stmt.executequery("select fname, lname FROM lemmas WHERE lname = '" + words[i] + "'" ); //rs = stmt.executequery("select luname, frame FROM lus WHERE luname = '" + words[i] + "'" ); int x=0; while (rs.next()) { String name = ("Frame : " + rs.getstring(1) + " Lemma : " + rs.getstring(2)); //String name = ("Lexical Unit : " + rs.getstring(1) + " Frame : " + rs.getstring(2)); System.out.println(name); 41

48 x++; // end for // Now do something with the ResultSet... finally { // it is a good idea to release // resources in a finally{ block // in reverse-order of their creation // if they are no-longer needed if (rs!= null) { try { rs.close(); catch (SQLException sqlex) { // ignore rs = null; if (stmt!= null) { try { stmt.close(); catch (SQLException sqlex) { // ignore stmt = null; // End of doing something catch (SQLException ex) { // handle any errors System.out.println("SQLException: " + ex.getmessage()); System.out.println("SQLState: " + ex.getsqlstate()); System.out.println("VendorError: " + ex.geterrorcode()); // end main // end SqlConn 42

49 REFERENCES Baker, Collin. F., Charles J. Fillmore, and John B Lowe. (1998) The Berkeley FrameNet Project. In COLING-ACL 98: Proceedings of the Conference, 1998, in Montreal, Canada, pp Baker, Collin. F. and Charles J. Fillmore. (2001). Frame semantics for text understanding. NAACL Annual Meeting. In Proceedings of WordNet and Other Lexical Resources Workshop. Johnson, Christopher R. and Charles J. Fillmore (2000): The FrameNet tagset for frame-semantic and syntactic coding of predicate-argument structure. In Proceedings of the 1st Meeting of the North American Chapter of the Association for Computational Linguistics (ANLP-NAACL 2000), April 29-May 4, 2000, Seattle WA, pp

To accomplish the parsing, we are going to use a SAX-Parser (Wiki-Info). SAX stands for "Simple API for XML", so it is perfect for us

To accomplish the parsing, we are going to use a SAX-Parser (Wiki-Info). SAX stands for Simple API for XML, so it is perfect for us Description: 0.) In this tutorial we are going to parse the following XML-File located at the following url: http:www.anddev.org/images/tut/basic/parsingxml/example.xml : XML:

More information

Simple API for XML (SAX)

Simple API for XML (SAX) Simple API for XML (SAX) Asst. Prof. Dr. Kanda Runapongsa (krunapon@kku.ac.th) Dept. of Computer Engineering Khon Kaen University 1 Topics Parsing and application SAX event model SAX event handlers Apache

More information

Document Parser Interfaces. Tasks of a Parser. 3. XML Processor APIs. Document Parser Interfaces. ESIS Example: Input document

Document Parser Interfaces. Tasks of a Parser. 3. XML Processor APIs. Document Parser Interfaces. ESIS Example: Input document 3. XML Processor APIs How applications can manipulate structured documents? An overview of document parser interfaces 3.1 SAX: an event-based interface 3.2 DOM: an object-based interface Document Parser

More information

MANAGING INFORMATION (CSCU9T4) LECTURE 4: XML AND JAVA 1 - SAX

MANAGING INFORMATION (CSCU9T4) LECTURE 4: XML AND JAVA 1 - SAX MANAGING INFORMATION (CSCU9T4) LECTURE 4: XML AND JAVA 1 - SAX Gabriela Ochoa http://www.cs.stir.ac.uk/~nve/ RESOURCES Books XML in a Nutshell (2004) by Elliotte Rusty Harold, W. Scott Means, O'Reilly

More information

CSC System Development with Java. Database Connection. Department of Statistics and Computer Science. Budditha Hettige

CSC System Development with Java. Database Connection. Department of Statistics and Computer Science. Budditha Hettige CSC 308 2.0 System Development with Java Database Connection Budditha Hettige Department of Statistics and Computer Science Budditha Hettige 1 From database to Java There are many brands of database: Microsoft

More information

Handling SAX Errors. <coll> <seqment> <title PMID="xxxx">title of doc 1</title> text of document 1 </segment>

Handling SAX Errors. <coll> <seqment> <title PMID=xxxx>title of doc 1</title> text of document 1 </segment> Handling SAX Errors James W. Cooper You re charging away using some great piece of code you wrote (or someone else wrote) that is making your life easier, when suddenly plotz! boom! The whole thing collapses

More information

COMP4317: XML & Database Tutorial 2: SAX Parsing

COMP4317: XML & Database Tutorial 2: SAX Parsing COMP4317: XML & Database Tutorial 2: SAX Parsing Week 3 Thang Bui @ CSE.UNSW SAX Simple API for XML is NOT a W3C standard. SAX parser sends events on-the-fly startdocument event enddocument event startelement

More information

XML APIs. Web Data Management and Distribution. Serge Abiteboul Philippe Rigaux Marie-Christine Rousset Pierre Senellart

XML APIs. Web Data Management and Distribution. Serge Abiteboul Philippe Rigaux Marie-Christine Rousset Pierre Senellart XML APIs Web Data Management and Distribution Serge Abiteboul Philippe Rigaux Marie-Christine Rousset Pierre Senellart http://gemo.futurs.inria.fr/wdmd January 25, 2009 Gemo, Lamsade, LIG, Telecom (WDMD)

More information

Needed for: domain-specific applications implementing new generic tools Important components: parsing XML documents into XML trees navigating through

Needed for: domain-specific applications implementing new generic tools Important components: parsing XML documents into XML trees navigating through Chris Panayiotou Needed for: domain-specific applications implementing new generic tools Important components: parsing XML documents into XML trees navigating through XML trees manipulating XML trees serializing

More information

SAX & DOM. Announcements (Thu. Oct. 31) SAX & DOM. CompSci 316 Introduction to Database Systems

SAX & DOM. Announcements (Thu. Oct. 31) SAX & DOM. CompSci 316 Introduction to Database Systems SAX & DOM CompSci 316 Introduction to Database Systems Announcements (Thu. Oct. 31) 2 Homework #3 non-gradiance deadline extended to next Thursday Gradiance deadline remains next Tuesday Project milestone

More information

Introduction to XML. Large Scale Programming, 1DL410, autumn 2009 Cons T Åhs

Introduction to XML. Large Scale Programming, 1DL410, autumn 2009 Cons T Åhs Introduction to XML Large Scale Programming, 1DL410, autumn 2009 Cons T Åhs XML Input files, i.e., scene descriptions to our ray tracer are written in XML. What is XML? XML - extensible markup language

More information

SQream Connector JDBC SQream Technologies Version 2.9.3

SQream Connector JDBC SQream Technologies Version 2.9.3 SQream Connector JDBC 2.9.3 SQream Technologies 2019-03-27 Version 2.9.3 Table of Contents The SQream JDBC Connector - Overview...................................................... 1 1. API Reference............................................................................

More information

Databases and Information Systems XML storage in RDBMS and core XPath implementation. Prof. Dr. Stefan Böttcher

Databases and Information Systems XML storage in RDBMS and core XPath implementation. Prof. Dr. Stefan Böttcher Databases and Information Systems 1 8. XML storage in RDBMS and core XPath implementation Prof. Dr. Stefan Böttcher XML storage and core XPath implementation 8.1. XML in commercial DBMS 8.2. Mapping XML

More information

JAXP: Beyond XML Processing

JAXP: Beyond XML Processing JAXP: Beyond XML Processing Bonnie B. Ricca Sun Microsystems bonnie.ricca@sun.com bonnie@bobrow.net Bonnie B. Ricca JAXP: Beyond XML Processing Page 1 Contents Review of SAX, DOM, and XSLT JAXP Overview

More information

DHANALAKSHMI COLLEGE OF ENGINEERING, CHENNAI

DHANALAKSHMI COLLEGE OF ENGINEERING, CHENNAI DHANALAKSHMI COLLEGE OF ENGINEERING, CHENNAI Department of Information Technology IT6801 SERVICE ORIENTED ARCHITECTURE Anna University 2 & 16 Mark Questions & Answers Year / Semester: IV / VII Regulation:

More information

XML in the Development of Component Systems. Parser Interfaces: SAX

XML in the Development of Component Systems. Parser Interfaces: SAX XML in the Development of Component Systems Parser Interfaces: SAX XML Programming Models Treat XML as text useful for interactive creation of documents (text editors) also useful for programmatic generation

More information

Making XT XML capable

Making XT XML capable Making XT XML capable Martin Bravenboer mbravenb@cs.uu.nl Institute of Information and Computing Sciences University Utrecht The Netherlands Making XT XML capable p.1/42 Introduction Making XT XML capable

More information

structure of the presentation Frame Semantics knowledge-representation in larger-scale structures the concept of frame

structure of the presentation Frame Semantics knowledge-representation in larger-scale structures the concept of frame structure of the presentation Frame Semantics semantic characterisation of situations or states of affairs 1. introduction (partially taken from a presentation of Markus Egg): i. what is a frame supposed

More information

Databases and Information Systems 1

Databases and Information Systems 1 Databases and Information Systems 7. XML storage and core XPath implementation 7.. Mapping XML to relational databases and Datalog how to store an XML document in a relation database? how to answer XPath

More information

Written Exam XML Winter 2005/06 Prof. Dr. Christian Pape. Written Exam XML

Written Exam XML Winter 2005/06 Prof. Dr. Christian Pape. Written Exam XML Name: Matriculation number: Written Exam XML Max. Points: Reached: 9 20 30 41 Result Points (Max 100) Mark You have 60 minutes. Please ask immediately, if you do not understand something! Please write

More information

Instructor: Jinze Liu. Fall 2008

Instructor: Jinze Liu. Fall 2008 Instructor: Jinze Liu Fall 2008 Database Project Database Architecture Database programming 2 Goal Design and implement a real application? Jinze Liu @ University of Kentucky 9/16/2008 3 Goal Design and

More information

XML (Extensible Markup Language) JAXP (Java API for XML Processing) Presented by Bartosz Sakowicz

XML (Extensible Markup Language) JAXP (Java API for XML Processing) Presented by Bartosz Sakowicz XML (Extensible Markup Language) JAXP (Java API for XML Processing) Presented by Bartosz Sakowicz Overview of XML XML is a text-based markup language that is fast becoming the standard for data interchange

More information

COP4540 TUTORIAL PROFESSOR: DR SHU-CHING CHEN TA: H S IN-YU HA

COP4540 TUTORIAL PROFESSOR: DR SHU-CHING CHEN TA: H S IN-YU HA COP4540 TUTORIAL PROFESSOR: DR SHU-CHING CHEN TA: H S IN-YU HA OUTLINE Postgresql installation Introduction of JDBC Stored Procedure POSTGRES INSTALLATION (1) Extract the source file Start the configuration

More information

EXAM IN SEMI-STRUCTURED DATA Study Code Student Id Family Name First Name

EXAM IN SEMI-STRUCTURED DATA Study Code Student Id Family Name First Name EXAM IN SEMI-STRUCTURED DATA 184.705 23. 10. 2015 Study Code Student Id Family Name First Name Working time: 100 minutes. Exercises have to be solved on this exam sheet; Additional slips of paper will

More information

Frame Semantic Structure Extraction

Frame Semantic Structure Extraction Frame Semantic Structure Extraction Organizing team: Collin Baker, Michael Ellsworth (International Computer Science Institute, Berkeley), Katrin Erk(U Texas, Austin) October 4, 2006 1 Description of task

More information

C:/Users/zzaier/Documents/NetBeansProjects/WebApplication4/src/java/mainpackage/MainClass.java

C:/Users/zzaier/Documents/NetBeansProjects/WebApplication4/src/java/mainpackage/MainClass.java package mainpackage; import java.sql.connection; import java.sql.drivermanager; import java.sql.resultset; import java.sql.sqlexception; import java.sql.statement; import javax.ws.rs.core.context; import

More information

Databases 2012 Embedded SQL

Databases 2012 Embedded SQL Databases 2012 Christian S. Jensen Computer Science, Aarhus University SQL is rarely written as ad-hoc queries using the generic SQL interface The typical scenario: client server database SQL is embedded

More information

Accessing databases in Java using JDBC

Accessing databases in Java using JDBC Accessing databases in Java using JDBC Introduction JDBC is an API for Java that allows working with relational databases. JDBC offers the possibility to use SQL statements for DDL and DML statements.

More information

Processing XML Documents with SAX Using BSF4ooRexx

Processing XML Documents with SAX Using BSF4ooRexx MIS Department Processing XML Documents with SAX Using BSF4ooRexx 2013 International Rexx Symposium RTP, North Carolina Prof. Dr. Rony G. Flatscher Vienna University of Economics and Business Administration

More information

NLP in practice, an example: Semantic Role Labeling

NLP in practice, an example: Semantic Role Labeling NLP in practice, an example: Semantic Role Labeling Anders Björkelund Lund University, Dept. of Computer Science anders.bjorkelund@cs.lth.se October 15, 2010 Anders Björkelund NLP in practice, an example:

More information

extensible Markup Language (XML) Announcements Sara Sprenkle August 1, 2006 August 1, 2006 Assignment 6 due Thursday Project 2 due next Wednesday

extensible Markup Language (XML) Announcements Sara Sprenkle August 1, 2006 August 1, 2006 Assignment 6 due Thursday Project 2 due next Wednesday extensible Markup Language (XML) Sara Sprenkle Announcements Assignment 6 due Thursday Project 2 due next Wednesday Quiz TA Evaluation Sara Sprenkle - CISC370 2 1 Using the Synchronized Keyword Can use

More information

Applied Databases. Sebastian Maneth. Lecture 4 SAX Parsing, Entity Relationship Model. University of Edinburgh - January 21st, 2016

Applied Databases. Sebastian Maneth. Lecture 4 SAX Parsing, Entity Relationship Model. University of Edinburgh - January 21st, 2016 Applied Databases Lecture 4 SAX Parsing, Entity Relationship Model Sebastian Maneth University of Edinburgh - January 21st, 2016 2 Outline 1. SAX Simple API for XML 2. Comments wrt Assignment 1 3. Data

More information

Welcome to: SAX Parser

Welcome to: SAX Parser Welcome to: SAX Parser Course materials may not be reproduced in whole or in part without the prior written permission of IBM. 3.1 Unit Objectives After completing this unit, you should be able to: Describe

More information

SAX Reference. The following interfaces were included in SAX 1.0 but have been deprecated:

SAX Reference. The following interfaces were included in SAX 1.0 but have been deprecated: G SAX 2.0.2 Reference This appendix contains the specification of the SAX interface, version 2.0.2, some of which is explained in Chapter 12. It is taken largely verbatim from the definitive specification

More information

Web Data Management. Tree Pattern Evaluation. Philippe Rigaux CNAM Paris & INRIA Saclay

Web Data Management. Tree Pattern Evaluation. Philippe Rigaux CNAM Paris & INRIA Saclay http://webdam.inria.fr/ Web Data Management Tree Pattern Evaluation Serge Abiteboul INRIA Saclay & ENS Cachan Ioana Manolescu INRIA Saclay & Paris-Sud University Philippe Rigaux CNAM Paris & INRIA Saclay

More information

Java Database Connectivity (JDBC) 25.1 What is JDBC?

Java Database Connectivity (JDBC) 25.1 What is JDBC? PART 25 Java Database Connectivity (JDBC) 25.1 What is JDBC? JDBC stands for Java Database Connectivity, which is a standard Java API for database-independent connectivity between the Java programming

More information

CSI 3140 WWW Structures, Techniques and Standards. Representing Web Data: XML

CSI 3140 WWW Structures, Techniques and Standards. Representing Web Data: XML CSI 3140 WWW Structures, Techniques and Standards Representing Web Data: XML XML Example XML document: An XML document is one that follows certain syntax rules (most of which we followed for XHTML) Guy-Vincent

More information

VanillaCore Walkthrough Part 1. Introduction to Database Systems DataLab CS, NTHU

VanillaCore Walkthrough Part 1. Introduction to Database Systems DataLab CS, NTHU VanillaCore Walkthrough Part 1 Introduction to Database Systems DataLab CS, NTHU 1 The Architecture VanillaDB JDBC/SP Interface (at Client Side) Remote.JDBC (Client/Server) Query Interface Remote.SP (Client/Server)

More information

DATABASE DESIGN I - 1DL300

DATABASE DESIGN I - 1DL300 DATABASE DESIGN I - 1DL300 Fall 2010 An introductory course on database systems http://www.it.uu.se/edu/course/homepage/dbastekn/ht10/ Manivasakan Sabesan Uppsala Database Laboratory Department of Information

More information

Parsing XML documents. DOM, SAX, StAX

Parsing XML documents. DOM, SAX, StAX Parsing XML documents DOM, SAX, StAX XML-parsers XML-parsers are such programs, that are able to read XML documents, and provide access to the contents and structure of the document XML-parsers are controlled

More information

1. PhP Project. Create a new PhP Project as shown below and click next

1. PhP Project. Create a new PhP Project as shown below and click next 1. PhP Project Create a new PhP Project as shown below and click next 1 Choose Local Web Site (Apache 24 needs to be installed) Project URL is http://localhost/projectname Then, click next We do not use

More information

Chair of Software Engineering. Java and C# in Depth. Prof. Dr. Bertrand Meyer. Exercise Session 9. Nadia Polikarpova

Chair of Software Engineering. Java and C# in Depth. Prof. Dr. Bertrand Meyer. Exercise Session 9. Nadia Polikarpova Chair of Software Engineering Java and C# in Depth Prof. Dr. Bertrand Meyer Exercise Session 9 Nadia Polikarpova Quiz 1: scrolling a ResultSet (JDBC) How do you assess the following code snippet that iterates

More information

ERwin and JDBC. Mar. 6, 2007 Myoung Ho Kim

ERwin and JDBC. Mar. 6, 2007 Myoung Ho Kim ERwin and JDBC Mar. 6, 2007 Myoung Ho Kim ERwin ERwin a popular commercial ER modeling tool» other tools: Dia (open source), Visio, ConceptDraw, etc. supports database schema generation 2 ERwin UI 3 Data

More information

UNIT 3 XML DATABASES

UNIT 3 XML DATABASES UNIT 3 XML DATABASES XML Databases: XML Data Model DTD - XML Schema - XML Querying Web Databases JDBC Information Retrieval Data Warehousing Data Mining. 3.1. XML Databases: XML Data Model The common method

More information

core programming Simple API for XML SAX Marty Hall, Larry Brown

core programming Simple API for XML SAX Marty Hall, Larry Brown core programming Simple API for XML SAX 1 2001-2003 Marty Hall, Larry Brown http:// 2 SAX Agenda Introduction to SAX Installation and setup Steps for SAX parsing Defining a content handler Examples Printing

More information

access to a JCA connection in WebSphere Application Server

access to a JCA connection in WebSphere Application Server Understanding connection transitions: Avoiding multithreaded access to a JCA connection in WebSphere Application Server Anoop Ramachandra (anramach@in.ibm.com) Senior Staff Software Engineer IBM 09 May

More information

Java Database Connectivity

Java Database Connectivity Java Database Connectivity INTRODUCTION Dr. Syed Imtiyaz Hassan Assistant Professor, Deptt. of CSE, Jamia Hamdard (Deemed to be University), New Delhi, India. s.imtiyaz@jamiahamdard.ac.in Agenda Introduction

More information

/* Copyright 2012 Robert C. Ilardi

/* Copyright 2012 Robert C. Ilardi / Copyright 2012 Robert C. Ilardi Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

More information

XML Programming in Java

XML Programming in Java Mag. iur. Dr. techn. Michael Sonntag XML Programming in Java DOM, SAX XML Techniques for E-Commerce, Budapest 2005 E-Mail: sonntag@fim.uni-linz.ac.at http://www.fim.uni-linz.ac.at/staff/sonntag.htm Michael

More information

The Book of SAX The Simple API for XML

The Book of SAX The Simple API for XML The Simple API for XML W. Scott Means, Michael A. Bodie Publisher: No Starch Press Frist Edition June 15th 2002 ISBN: 1886411778, 293 pages A tutorial and reference for SAX, the Simple API for XML. Written

More information

Web Applications and Database Connectivity using JDBC (Part II)

Web Applications and Database Connectivity using JDBC (Part II) Web Applications and Database Connectivity using JDBC (Part II) Advanced Topics in Java Khalid Azim Mughal khalid@ii.uib.no http://www.ii.uib.no/~khalid/atij/ Version date: 2007-02-08 ATIJ Web Applications

More information

Consuming SharePoint Web Services with SAP Web Dynpro using the Adaptive Web Services Model

Consuming SharePoint Web Services with SAP Web Dynpro using the Adaptive Web Services Model Consuming SharePoint Web Services with SAP Web Dynpro using the Adaptive Web Services Model Applies to: NetWeaver 7.0 SP 06, SAP Web Dynpro for Java, Microsoft Office SharePoint Server 2007. Summary Interoperability

More information

Accelerating SVG Transformations with Pipelines XML & SVG Event Pipelines Technologies Recommendations

Accelerating SVG Transformations with Pipelines XML & SVG Event Pipelines Technologies Recommendations Accelerating SVG Transformations with Pipelines XML & SVG Event Pipelines Technologies Recommendations Eric Gropp Lead Systems Developer, MWH Inc. SVG Open 2003 XML & SVG In the Enterprise SVG can meet

More information

ANC2Go: A Web Application for Customized Corpus Creation

ANC2Go: A Web Application for Customized Corpus Creation ANC2Go: A Web Application for Customized Corpus Creation Nancy Ide, Keith Suderman, Brian Simms Department of Computer Science, Vassar College Poughkeepsie, New York 12604 USA {ide, suderman, brsimms}@cs.vassar.edu

More information

Final Project Discussion. Adam Meyers Montclair State University

Final Project Discussion. Adam Meyers Montclair State University Final Project Discussion Adam Meyers Montclair State University Summary Project Timeline Project Format Details/Examples for Different Project Types Linguistic Resource Projects: Annotation, Lexicons,...

More information

Written Exam XML Summer 06 Prof. Dr. Christian Pape. Written Exam XML

Written Exam XML Summer 06 Prof. Dr. Christian Pape. Written Exam XML Name: Matriculation number: Written Exam XML Max. Points: Reached: 9 20 30 41 Result Points (Max 100) Mark You have 60 minutes. Please ask immediately, if you do not understand something! Please write

More information

Writing your own Exceptions. How to extend Exception

Writing your own Exceptions. How to extend Exception Writing your own Exceptions How to extend Exception When would you write your own exception class? When to write your own custom exception is a matter for discussion in your project design team. There

More information

Knowledge Engineering pt. School of Industrial and Information Engineering. Test 2 24 th July Part II. Family name.

Knowledge Engineering pt. School of Industrial and Information Engineering. Test 2 24 th July Part II. Family name. School of Industrial and Information Engineering Knowledge Engineering 2012 13 Test 2 24 th July 2013 Part II Family name Given name(s) ID 3 6 pt. Consider the XML language defined by the following schema:

More information

SQL: Programming. Announcements (September 25) Motivation. CPS 116 Introduction to Database Systems. Pros and cons of SQL.

SQL: Programming. Announcements (September 25) Motivation. CPS 116 Introduction to Database Systems. Pros and cons of SQL. SQL: Programming CPS 116 Introduction to Database Systems Announcements (September 25) 2 Homework #2 due this Thursday Submit to Yi not through Jun s office door Solution available this weekend No class

More information

Data Exchange. Hyper-Text Markup Language. Contents: HTML Sample. HTML Motivation. Cascading Style Sheets (CSS) Problems w/html

Data Exchange. Hyper-Text Markup Language. Contents: HTML Sample. HTML Motivation. Cascading Style Sheets (CSS) Problems w/html Data Exchange Contents: Mariano Cilia / cilia@informatik.tu-darmstadt.de Origins (HTML) Schema DOM, SAX Semantic Data Exchange Integration Problems MIX Model 1 Hyper-Text Markup Language HTML Hypertext:

More information

CSE 135. Three-Tier Architecture. Applications Utilizing Databases. Browser. App. Server. Database. Server

CSE 135. Three-Tier Architecture. Applications Utilizing Databases. Browser. App. Server. Database. Server CSE 135 Applications Utilizing Databases Three-Tier Architecture Located @ Any PC HTTP Requests Browser HTML Located @ Server 2 App Server JDBC Requests JSPs Tuples Located @ Server 1 Database Server 2

More information

Visit for more.

Visit  for more. Chapter 6: Database Connectivity Informatics Practices Class XII (CBSE Board) Revised as per CBSE Curriculum 2015 Visit www.ip4you.blogspot.com for more. Authored By:- Rajesh Kumar Mishra, PGT (Comp.Sc.)

More information

Pieter van den Hombergh. March 25, 2018

Pieter van den Hombergh. March 25, 2018 ergh Fontys Hogeschool voor Techniek en Logistiek March 25, 2018 ergh/fhtenl March 25, 2018 1/25 JDBC JDBC is a Java database connectivity technology (Java Standard Edition platform) from Oracle Corporation.

More information

( A ) 8. If the address of an array is stored in $value, how do you get the values of this array? (B) \$value (C) &$value (D) $$value

( A ) 8. If the address of an array is stored in $value, how do you get the values of this array? (B) \$value (C) &$value (D) $$value CS 665 Information Delivery on the Internet Final Exam - Name: Fall 2002 Part 1: (75 points - 3 points for each problem) ( A ) 1. What protocol is used by all Web communications transactions? (A) HTTP

More information

languages for describing grammar and vocabularies of other languages element: data surrounded by markup that describes it

languages for describing grammar and vocabularies of other languages element: data surrounded by markup that describes it XML and friends history/background GML (1969) SGML (1986) HTML (1992) World Wide Web Consortium (W3C) (1994) XML (1998) core language vocabularies, namespaces: XHTML, RSS, Atom, SVG, MathML, Schema, validation:

More information

COSE312: Compilers. Lecture 1 Overview of Compilers

COSE312: Compilers. Lecture 1 Overview of Compilers COSE312: Compilers Lecture 1 Overview of Compilers Hakjoo Oh 2017 Spring Hakjoo Oh COSE312 2017 Spring, Lecture 1 March 7, 2017 1 / 15 What is Compiler? Software systems that translate a program written

More information

A Semantic Role Repository Linking FrameNet and WordNet

A Semantic Role Repository Linking FrameNet and WordNet A Semantic Role Repository Linking FrameNet and WordNet Volha Bryl, Irina Sergienya, Sara Tonelli, Claudio Giuliano {bryl,sergienya,satonelli,giuliano}@fbk.eu Fondazione Bruno Kessler, Trento, Italy Abstract

More information

Java EE 7: Back-end Server Application Development 4-2

Java EE 7: Back-end Server Application Development 4-2 Java EE 7: Back-end Server Application Development 4-2 XML describes data objects called XML documents that: Are composed of markup language for structuring the document data Support custom tags for data

More information

Unit 3 - Java Data Base Connectivity

Unit 3 - Java Data Base Connectivity Two-Tier Database Design The two-tier is based on Client-Server architecture. The direct communication takes place between client and server. There is no mediator between client and server. Because of

More information

EXAM IN SEMI-STRUCTURED DATA Study Code Student Id Family Name First Name

EXAM IN SEMI-STRUCTURED DATA Study Code Student Id Family Name First Name EXAM IN SEMI-STRUCTURED DATA 184.705 24. 6. 2015 Study Code Student Id Family Name First Name Working time: 100 minutes. Exercises have to be solved on this exam sheet; Additional slips of paper will not

More information

Force.com Streaming API Developer's Guide

Force.com Streaming API Developer's Guide Force.com Streaming API Developer's Guide Version 34.0, Summer 15 @salesforcedocs Last updated: June 30, 2015 Copyright 2000 2015 salesforce.com, inc. All rights reserved. Salesforce is a registered trademark

More information

CSCI Object Oriented Design: Java Review Errors George Blankenship. Java Review - Errors George Blankenship 1

CSCI Object Oriented Design: Java Review Errors George Blankenship. Java Review - Errors George Blankenship 1 CSCI 6234 Object Oriented Design: Java Review Errors George Blankenship Java Review - Errors George Blankenship 1 Errors Exceptions Debugging Java Review Topics Java Review - Errors George Blankenship

More information

CSCI Object-Oriented Design. Java Review Topics. Program Errors. George Blankenship 1. Java Review Errors George Blankenship

CSCI Object-Oriented Design. Java Review Topics. Program Errors. George Blankenship 1. Java Review Errors George Blankenship CSCI 6234 Object Oriented Design: Java Review Errors George Blankenship George Blankenship 1 Errors Exceptions Debugging Java Review Topics George Blankenship 2 Program Errors Types of errors Compile-time

More information

Types of Databases. Types of Databases. Types of Databases. Databases and Web. Databases and Web. Relational databases may also have indexes

Types of Databases. Types of Databases. Types of Databases. Databases and Web. Databases and Web. Relational databases may also have indexes Types of Databases Relational databases contain stuctured data tables, columns, fixed datatype for each column Text databases are available for storing non-structured data typically text databases store

More information

Generating FrameNets of various granularities: The FrameNet Transformer

Generating FrameNets of various granularities: The FrameNet Transformer Generating FrameNets of various granularities: The FrameNet Transformer Josef Ruppenhofer, Jonas Sunde, & Manfred Pinkal Saarland University LREC, May 2010 Ruppenhofer, Sunde, Pinkal (Saarland U.) Generating

More information

Working with Databases and Java

Working with Databases and Java Working with Databases and Java Pedro Contreras Department of Computer Science Royal Holloway, University of London January 30, 2008 Outline Introduction to relational databases Introduction to Structured

More information

Syntax and Grammars 1 / 21

Syntax and Grammars 1 / 21 Syntax and Grammars 1 / 21 Outline What is a language? Abstract syntax and grammars Abstract syntax vs. concrete syntax Encoding grammars as Haskell data types What is a language? 2 / 21 What is a language?

More information

OpenClinica: Towards Database Abstraction, Part 1

OpenClinica: Towards Database Abstraction, Part 1 OpenClinica: Towards Database Abstraction, Part 1 Author: Tom Hickerson, Akaza Research Date Created: 8/26/2004 4:17 PM Date Updated: 6/10/2005 3:22 PM, Document Version: v0.3 Document Summary This document

More information

Table of Contents. Tutorial API Deployment Prerequisites... 1

Table of Contents. Tutorial API Deployment Prerequisites... 1 Copyright Notice All information contained in this document is the property of ETL Solutions Limited. The information contained in this document is subject to change without notice and does not constitute

More information

Project Documentation

Project Documentation Project Documentation A JDBC Driver Supporting Data Integration and Evolution Jian Jia Goals University of Iowa, Iowa City, IA jjia@cs.uiowa.edu This project will produce a Unity JDBC Driver that is compliant

More information

XML Parsers. Asst. Prof. Dr. Kanda Runapongsa Saikaew Dept. of Computer Engineering Khon Kaen University

XML Parsers. Asst. Prof. Dr. Kanda Runapongsa Saikaew Dept. of Computer Engineering Khon Kaen University XML Parsers Asst. Prof. Dr. Kanda Runapongsa Saikaew (krunapon@kku.ac.th) Dept. of Computer Engineering Khon Kaen University 1 Overview What are XML Parsers? Programming Interfaces of XML Parsers DOM:

More information

Army Research Laboratory

Army Research Laboratory Army Research Laboratory Arabic Natural Language Processing System Code Library by Stephen C. Tratz ARL-TN-0609 June 2014 Approved for public release; distribution is unlimited. NOTICES Disclaimers The

More information

xmlreader & xmlwriter Marcus Börger

xmlreader & xmlwriter Marcus Börger xmlreader & xmlwriter Marcus Börger PHP tek 2006 Marcus Börger xmlreader/xmlwriter 2 xmlreader & xmlwriter Brief review of SimpleXML/DOM/SAX Introduction of xmlreader Introduction of xmlwriter Marcus Börger

More information

Workbook 5. Introduction. Using a database in Java. Important

Workbook 5. Introduction. Using a database in Java. Important Introduction Workbook 5 Last week you wrote your own implementation of a Java chat server. This week you will extend your implementation of the Java chat server and integrate a database. The database will

More information

Objectives. Problem Solving. Introduction. An overview of object-oriented concepts. Programming and programming languages An introduction to Java

Objectives. Problem Solving. Introduction. An overview of object-oriented concepts. Programming and programming languages An introduction to Java Introduction Objectives An overview of object-oriented concepts. Programming and programming languages An introduction to Java 1-2 Problem Solving The purpose of writing a program is to solve a problem

More information

TagSoup: A SAX parser in Java for nasty, ugly HTML. John Cowan

TagSoup: A SAX parser in Java for nasty, ugly HTML. John Cowan TagSoup: A SAX parser in Java for nasty, ugly HTML John Cowan (cowan@ccil.org) Copyright This presentation is: Copyright 2002 John Cowan Licensed under the GNU General Public License ABSOLUTELY WITHOUT

More information

Looking Inside the Developer s Toolkit: Introduction to Processing XML with RPG and SQL Too! Charles Guarino

Looking Inside the Developer s Toolkit: Introduction to Processing XML with RPG and SQL Too! Charles Guarino Looking Inside the Developer s Toolkit: Introduction to Processing XML with RPG and SQL Too! Charles Guarino Central Park Data Systems, Inc. @charlieguarino About The Speaker With an IT career spanning

More information

Semantics Isn t Easy Thoughts on the Way Forward

Semantics Isn t Easy Thoughts on the Way Forward Semantics Isn t Easy Thoughts on the Way Forward NANCY IDE, VASSAR COLLEGE REBECCA PASSONNEAU, COLUMBIA UNIVERSITY COLLIN BAKER, ICSI/UC BERKELEY CHRISTIANE FELLBAUM, PRINCETON UNIVERSITY New York University

More information

CSCI/CMPE Object-Oriented Programming in Java JDBC. Dongchul Kim. Department of Computer Science University of Texas Rio Grande Valley

CSCI/CMPE Object-Oriented Programming in Java JDBC. Dongchul Kim. Department of Computer Science University of Texas Rio Grande Valley CSCI/CMPE 3326 Object-Oriented Programming in Java JDBC Dongchul Kim Department of Computer Science University of Texas Rio Grande Valley Introduction to Database Management Systems Storing data in traditional

More information

Servlet 5.1 JDBC 5.2 JDBC

Servlet 5.1 JDBC 5.2 JDBC 5 Servlet Java 5.1 JDBC JDBC Java DataBase Connectivity Java API JDBC Java Oracle, PostgreSQL, MySQL Java JDBC Servlet OpenOffice.org ver. 2.0 HSQLDB HSQLDB 100% Java HSQLDB SQL 5.2 JDBC Java 1. JDBC 2.

More information

Using a CVP VoiceXML application to implement a logical shadow queue for ICM

Using a CVP VoiceXML application to implement a logical shadow queue for ICM Using a CVP VoiceXML application to implement a logical shadow queue for ICM Introduction When calls are queuing in ICM, situations can arise in which greater visibility of the queue contents is required

More information

xmlreader & xmlwriter Marcus Börger

xmlreader & xmlwriter Marcus Börger xmlreader & xmlwriter Marcus Börger PHP Quebec 2006 Marcus Börger SPL - Standard PHP Library 2 xmlreader & xmlwriter Brief review of SimpleXML/DOM/SAX Introduction of xmlreader Introduction of xmlwriter

More information

Tirgul 1. Course Guidelines. Packages. Special requests. Inner classes. Inner classes - Example & Syntax

Tirgul 1. Course Guidelines. Packages. Special requests. Inner classes. Inner classes - Example & Syntax Tirgul 1 Today s topics: Course s details and guidelines. Java reminders and additions: Packages Inner classes Command Line rguments Primitive and Reference Data Types Guidelines and overview of exercise

More information

Introduction to SQL & Database Application Development Using Java

Introduction to SQL & Database Application Development Using Java Introduction to SQL & Database Application Development Using Java By Alan Andrea The purpose of this paper is to give an introduction to relational database design and sql with a follow up on how these

More information

COMP102: Introduction to Databases, 23

COMP102: Introduction to Databases, 23 COMP102: Introduction to Databases, 23 Dr Muhammad Sulaiman Khan Department of Computer Science University of Liverpool U.K. 04 April, 2011 Programming with SQL Specific topics for today: Client/Server

More information

Enterprise JavaBeans. Layer:08. Persistence

Enterprise JavaBeans. Layer:08. Persistence Enterprise JavaBeans Layer:08 Persistence Agenda Discuss "finder" methods. Describe DataSource resources. Describe bean-managed persistence. Describe container-managed persistence. Last Revised: 11/1/2001

More information

This lecture. Databases - JDBC I. Application Programs. Database Access End Users

This lecture. Databases - JDBC I. Application Programs. Database Access End Users This lecture Databases - I The lecture starts discussion of how a Java-based application program connects to a database using. (GF Royle 2006-8, N Spadaccini 2008) Databases - I 1 / 24 (GF Royle 2006-8,

More information

The Many Faces Of Apache Ignite. David Robinson, Software Engineer May 13, 2016

The Many Faces Of Apache Ignite. David Robinson, Software Engineer May 13, 2016 The Many Faces Of Apache Ignite David Robinson, Software Engineer May 13, 2016 A Face In elementary geometry, a face is a two-dimensional polygon on the boundary of a polyhedron. 2 Attribution:Robert Webb's

More information

JDBC Programming: Intro

JDBC Programming: Intro JDBC Programming: Intro Most interaction with DB is not via interactive interface Most people interact via 1. Application programs directly 2. Apps over the internet There are 3 general approaches to developing

More information

Chapter 1 An introduction to relational databases and SQL

Chapter 1 An introduction to relational databases and SQL Chapter 1 An introduction to relational databases and SQL Murach's MySQL, C1 2015, Mike Murach & Associates, Inc. Slide 1 Objectives Knowledge Identify the three main hardware components of a client/server

More information