EFIM is the prototype information system development project using the event-based function information model. This project pursues to develop a new data model specially designed for information chronicling. To meet the complex demands in heterogeneous data modeling, it has a number of unique features: unified data index, progressive event logging and trace back supports, behavior pattern generation and matching, and functional summarization in multiple levels of granularity.


Contents on the EFIM documents are described at Project/EFIM/Documentation.


Event-linked video player

See Project/EFIM/E-Player section for detail.

EFIM Adiministrator

Image:efim_administorator_04112007.png|The EFIM administrator screen interface Image:efim_register_04112007.png|Manual event registration interface Image:efim_event_04112007.png|Registered events Image:efim_event_tasklist_04112007.png|Event task list

  • Documentation
  • Hierarchical queries Depending on the database systems, the support for hierarchical queries significantly differ by. Hierarchical queries provides an overview on technical issues and approaches on this method. Performance evaluation See TPC-H section for detail.

  • E-Player
  • Objects Demonstrate the power of the EFIM as the backend storage for video tagging application. We will show this by the E-player by which all heterogeneous information of video series will be mingled together in a unified way. Demonstration To see the demonstration, we need a SMIL 2.0 player. Please download the RealPlayer from here. When you connect to the test server, you will see three regions: the top-left one playing the video, the top-right view showing scenes and episodes list and the bottom view showing related scenes and the search view.

  • Hierarchical queries
  • Hierarchical queries are statements to retrieve chain of related sets. Its table typically represents the list of linked records like employee-manager sequences. They usually represented in tree structure. SQL standard does not directly support the convenient method for hierarchical data structure since it is born to support the set-based records in table structure. This problem is also called Transitive closure in the literature http://stencel.mimuw.edu.pl/obd/sbql_rekursja.pdf Object-Oriented Programming with Recursive Queries]. Accordingly several vendors support the extensions.

  • Introduction
  • Current status Initial experiments to check the EFIM system stability has been going over several weeks against Wikipedia database. At first three client computer and one server database computer were used to test multitasking environment sand database stability and now all client programs are moved to the server computer and has been under operation for a long time with the firm stability. Since Wikipedia database has millions of records, it will take a long time to finish.

  • TPC-H
  • TPC-H is an ad-hoc, decision support benchmark. TPC benchmarks are widely used today in evaluating the performance of relational database systems; the results are published on the TPC web site. TPC-H provides the detail specification on the benchmark. Please be aware that this page is the record of the expriment done on Sept. 2009. I have not checked any TPC-H changes since then. Setup experiment environments At the TPC-H web page on the right side, source codes are available that will generate the test data.

  • TPC-H Default Queries
  • This page lists the complete TPC-H default queries that passed tests with the MySQL server ver. 5.1.23. # Q1 select l_returnflag, l_linestatus, sum(l_quantity) as sum_qty, sum(l_extendedprice) as sum_base_price, sum(l_extendedprice * (1 - l_discount)) as sum_disc_price, sum(l_extendedprice * (1 - l_discount) * (1 + l_tax)) as sum_charge, avg(l_quantity) as avg_qty, avg(l_extendedprice) as avg_price, avg(l_discount) as avg_disc, count(*) as count_order from lineitem where l_shipdate <= date '1998-12-01' - interval '90' day group by l_returnflag, l_linestatus order by l_returnflag, l_linestatus; # Q2 select s_acctbal, s_name, n_name, p_partkey, p_mfgr, s_address, s_phone, s_comment from part, supplier, partsupp, nation, region where p_partkey = ps_partkey and s_suppkey = ps_suppkey and p_size = 15 and p_type like '%BRASS' and s_nationkey = n_nationkey and n_regionkey = r_regionkey and r_name = 'EUROPE' and ps_supplycost = ( select min(ps_supplycost) from partsupp, supplier, nation, region where p_partkey = ps_partkey and s_suppkey = ps_suppkey and s_nationkey = n_nationkey and n_regionkey = r_regionkey and r_name = 'EUROPE' ) order by s_acctbal desc, n_name, s_name, p_partkey limit 100; #Q3 select l_orderkey, sum(l_extendedprice * (1 - l_discount)) as revenue, o_orderdate, o_shippriority from customer, orders, lineitem where c_mktsegment = 'BUILDING' and c_custkey = o_custkey and l_orderkey = o_orderkey and o_orderdate < date '1995-03-15' and l_shipdate > date '1995-03-15' group by l_orderkey, o_orderdate, o_shippriority order by revenue desc, o_orderdate limit 10; #Q4 select o_orderpriority, count(*) as order_count from orders where o_orderdate >= date '1993-07-01' and o_orderdate < date '1993-07-01' + interval '3' month and exists ( select * from lineitem where l_orderkey = o_orderkey and l_commitdate < l_receiptdate ) group by o_orderpriority order by o_orderpriority; #Q5 select n_name, sum(l_extendedprice * (1 - l_discount)) as revenue from customer, orders, lineitem, supplier, nation, region where c_custkey = o_custkey and l_orderkey = o_orderkey and l_suppkey = s_suppkey and c_nationkey = s_nationkey and s_nationkey = n_nationkey and n_regionkey = r_regionkey and r_name = 'ASIA' and o_orderdate >= date '1994-01-01' and o_orderdate < date '1994-01-01' + interval '1' year group by n_name order by revenue desc; #Q6 select sum(l_extendedprice * l_discount) as revenue from lineitem where l_shipdate >= date '1994-01-01' and l_shipdate < date '1994-01-01' + interval '1' year and l_discount between .