Showing posts with label standards. Show all posts
Showing posts with label standards. Show all posts

2008-03-06

the de facto president


Gloria’s appeal to the intelligentsia and religious leaders to support her in efforts to weed out corruption and promote good governance is but a last ditch effort to trick all of us to give her another chance. She says one thing and does another. Gloria’s decision to scrap EO 464 now that the damage has already been done on our institutions is too late and too empty to be of any substance. The Supreme Court leaves only the principle of issuing EO-464 constitutional, but everything else is rubbish as it has already junked (much earlier) the constitutionality of all but two provisions of the controversial E.O. 464 which have been used in covering up for the Venable Contract, Hello Garci Scandal, Fertilizer Fund Scam, NorthRail Project and the NBN-ZTE deal. Even before the EO was scrapped, it was toothless and rendered inefficient so that other weapons are now used to achieve the same effect – invoking presidential immunity, the right against self-incrimination, and executive privilege – this is a clear indication of saying one thing yet doing another. Malinaw sa taong bayan na ang administrasyon ni Gloria ay sinisikil ang katotohanan at umiiwas sa pananagutan.




TAMA NA, SOBRA NA. Seven years, and nothing but saliva, Gloria’s moves are not part of a sincere struggle but a blatant hypocrisy that seeks to insult the intelligence of the Filipino people and disrespect our laws and the constitution itself, along with every principle of ethics and morality, in her administration’s quest for political survival and dominion over all that is left of the Philippines.



the de facto president, Gloria Macapagal-Arroyo (GMA) has lost all sense of decency and consequently has lost any remaining respect of the Filipino People. She has repeatedly become the centerpiece of scams and scandals that represent the wide range of corruption and dishonesty she and her allies have ventured into. It is an understatement to say that the National Executive branch of the Philippine government has virtually become the exclusive enclave of Gloria and her allies, becoming in fact the Great Arroyo Mafia. (OR, the Great Mafia of the Arroyos, still GMA. Note that JdV was kicked out of this, thanks to the war-drum beat of the three Arroyos in the Lower House, confirming earlier suspicions of further consolidation of power with the election of 3 Arroyos and the explosive growth of ka-KAMPI.)

Gloria Macapagal-Arroyo is the Titular head of this mafia; while we now all know, like Renato de Villa has known way ahead of us, that Big Boy, Jose Pidal, the First Gentleman is its real boss. So in analysis we can surmise that there are two GMAs: one is Gloria Macapagal-Arroyo, the sincere and hardworking populist president; the other is the Great Mafia of the Arroyos, the underground under-the-table system of alliances developed and aggressively pursued by the First Gentleman, his sons, brother Iggy, and their loyal servants like Abalos, Nograles, and you get the picture. The Great Mafia of the Arroyos is, of course, not complete without the backing and loans from crony capitalists, and the one we know most is Enrique Razon. Who knows how many more of this cabal of conspirators have turned against their own people for financial gain. What we know from erstwhile allies (Manay Gina de Venecia, and the Hyatt 10 like Dinky Soliman) is that the other GMA, the Mafia, has been in virtual control of the Office of the President since its survival of the Hello-Garci Electoral Fraud Scandal.



TAMA NA, SOBRA NA.



If the president stays, she will remain an object not of respect, but an object of national scorn and international shame for us!



The only way out is for the chief benefactors of the rigged 2004 elections to resign immediately and unconditionally, to prepare the way for a snap elections. All the mess done by the current regime has unconsciously dug its own grave and in its effort to cover-up, this grave has become deeper. Of course, Cha-Cha (or charter change) has always been the first aid kit of LAKAS since the Ramos regime. Its recipe has been perfected by JdV himself perhaps out of fervent hopes to become the First Prime Minister in this new Charter. But now this recipe has been stolen from him as GMA poises to transform herself into this new blended vastly reinforced top position. Sorry JdV, but you can’t make it right, probably (GMA hopes) the lord will grant this to her at the right time (after 2010).

Speaking of the lord, please be informed we do not pray to one and the same God. (Remember FG could be heard saying, “god bless!” in the hello-garci recordings.) While also monotheists, these corrupt elements obviously have one god but its name is Mammon, not Allah, Yahweh El Shaddai, or any other supreme deity, but Mammon. So the next time you hear Gloria saying she talked to god, you know which god hears her prayers.



SHE has excelled above all men in theft and perjury.

Her reward will be great in Mammon’s haven. Bahala na si lord sa kanya


2006-12-23

The XML Files: XML Data Migration Case Study: GEDCOM


Download the code for this article: XMLFiles0405.exe (143KB)



XML's ubiquity and continually improving tool support has created a magnetism that attracts organizations everywhere. As organizations move to XML, they must also provide a coherent data migration strategy that allows their users to bring old files forward. This is a nontrivial problem that typically requires tedious code to implement the transformation process. The System.Xml namespace in the Microsoft® .NET Framework, however, can greatly simplify these data migration challenges through its extensible APIs and support for XSLT.

An example of data migration is what's currently happening around genealogy data formats. Genealogists have long relied on the Genealogical Data Communications (GEDCOM) 5.5 format for sharing genealogical information. GEDCOM 5.5 is text based but not XML based. A beta version of GEDCOM 6.0 is available and is completely based on XML. But what about the gigabytes of genealogical information that can still be found in GEDCOM 5.5 format? This presents an interesting data migration challenge that really should not be ignored.

In this column I'll walk you through solving this data migration problem using System.Xml. This process can serve as a blueprint for other data migration problems you may face.


GEDCOM 101

GEDCOM was developed to facilitate exchanging genealogical data across different genealogy programs and systems. A common format like GEDCOM allows users to share their work with others regardless of the program they're using.

Version 5.5 is the most widely used version of the various GEDCOM specifications (see The GEDCOM Standard Release 5.5). GEDCOM 5.5 relies on a simple text-based grammar that leverages line delimiters and level numbers to structure family tree information. Figure 1 provides a sample GEDCOM 5.5 file.

Each GEDCOM line contains a level number, a tag, and an optional value. Multiple lines constitute a GEDCOM record. A level of 0 marks the beginning of a new GEDCOM record. Every line that follows is part of the record until you reach another line with a level of 0. The tag name conveys meaning about the information on the line as defined in the specification.

In the example shown in Figure 1, HEAD is the first record and it contains six children (SOUR, DATE, GEDC, CHAR, SUBM, SUBN). SOUR contains two children (VERS and NAME) while DATE contains one child (TIME). The increasing level numbers indicate parent-to-child relationships. A line may also contain a unique identifier, as shown in the following snippet:

0 @SUB01@ SUBM
1 NAME Aaron Skonnard
1 ADDR 456 Main



XSLT for GEDCOM 6.0

The latest GEDCOM specification, version 6.0, defines a full-fledged XML format for GEDCOM information. The specification even provides a Document Type Definition (DTD) that defines the elements and attributes that make up the complete GEDCOM 6.0 vocabulary.

The GEDCOM 6.0 format is much different from the one my GedcomReader simulates. In order to migrate to GEDCOM 6.0, you have to either modify the GedcomReader implementation in order to simulate the new format or write an XSLT that performs the transformation in a subsequent step.

The GEDCOM 6.0 format is much more complex than the simple mapping I simulated in GedcomReader. Consequently, trying to simulate GEDCOM 6.0 in the GedcomReader code would be extremely difficult and error prone. Using an XSLT transformation to accomplish this step is a more tractable problem.

In Figure 7 I've provided an XSLT in the sample project that illustrates how to generate a GEDCOM 6.0 file from the intermediate XML format shown in Figure 3. The XSLT covers the most common GEDCOM 6.0 use cases, and it produces files that pass validation against the GEDCOM 6.0 DTD.

You can use this XSLT by taking advantage of the System.Xml.Xsl.XslTransform class, as shown here:

GedcomReader gr = new GedcomReader(gedcomFileName); XmlDocument doc = new XmlDocument(); doc.Load(gr); gr.Close(); // done using GedcomReader XslTransform tx = new XslTransform(); tx.Load("gedcom6.xsl"); FileStream fs = new FileStream("skonnord6.xml", FileMode.Create); tx.Transform(doc, null, fs, null);

The output file, skonnord6.xml, will now be GEDCOM 6.0-compliant. At this point it's also possible to write other XSLT transformations that change the intermediate XML format into another format of your choosing. For example, you could write an XSLT transformation that produces human-readable HTML pages for viewing and navigating the GEDCOM family tree information.

As you can see, it didn't take much code to implement a complete GEDCOM migration path. The ability to programmatically move between GEDCOM 5.5 and GEDCOM 6.0 greatly simplifies the migration scenarios that are involved in building a complete genealogy system around the new GEDCOM 6.0 data model.

Back to top

Where Are We?

I've walked through a real-world data migration scenario using the System.Xml classes in .NET. I started with the GEDCOM 5.5 format and moved to an intermediate XML format that can be processed in a variety of ways. This is made possible by a custom XmlReader implementation called GedcomReader.

The intermediate XML format can also be transformed into a variety of other formats. I was able to migrate to GEDCOM 6.0 by using an XSLT transformation (see Figure 8).

Figure 8 Migrating to GEDCOM 6.0
Figure 8 Migrating to GEDCOM 6.0

The extensibility points provided by System.Xml facilitate dealing with a variety of data migration scenarios like this one. If you have old data formats lying around that would benefit from migrating to XML, follow the approach discussed in this column to implement your own migration path.

Back to top

Send your questions and comments for Aaron to xmlfiles@microsoft.com.

Aaron Skonnard teaches at Northface University in Salt Lake City. Aaron coauthored Essential XML Quick Reference (Addison-Wesley, 2001) and Essential XML (Addison-Wesley, 2000), and frequently speaks at conferences. Reach him at http://www.skonnard.com.

Subscribe From the May 2004 issue of MSDN Magazine.


2 CONT Salt Lake City, Utah 84150
In this example, the SUBM record has a unique identifier of SUB01. This ID must be unique within the scope of the document. Identifiers make it possible to establish links between records. For example, the HEAD record referenced this SUBM record on the following line of code:
1 SUBM @SUB01@

These are the basics of the GEDCOM 5.5 grammar. GEDCOM 5.5 is capable of representing sophisticated tree structures through its use of level numbers, identifiers, and cross-referencing capabilities. I don't have enough space in this column to cover GEDCOM semantics in more detail. Suffice it to say that GEDCOM 5.5 makes it possible to express a wide range of genealogy-related information.

Since GEDCOM was primarily designed to represent tree structures (family trees) in an interoperable manner, moving GEDCOM to an XML format seems like a perfect fit.

Back to top

Mapping GEDCOM to XML

The GEDCOM 5.5 grammar maps nicely to XML. One way to define a simple XML mapping is to convert each GEDCOM line into an XML element with the same name. The line's optional data, if any, can be placed in an attribute named "value". Identifiers can be placed in an attribute named "id" and references to other records can be placed in an attribute named "idref". Figure 2 may help you visualize the mapping. Applying this simple mapping to the GEDCOM 5.5 file shown in Figure 1 produces the XML document shown in Figure 3.

Figure 2 Mapping GEDCOM 5.5 to GEDCOM XML
Figure 2 Mapping GEDCOM 5.5 to GEDCOM XML

The XML version conveys the same information, but now it can be processed by a much wider range of tools and technologies. For example, you could process the XML file with your favorite XML API (such as DOM, SAX, XmlTextReader, or XPathNavigator), a query language like XPath or XQuery, or a transformation language like XSLT. Ultimately, once you have GEDCOM data in XML format, you can do just about anything with it.

Back to top

license to use my original content

is hereby granted as long as credit is given to the original author, this license should neither be understood as a claim that any image or content found here came from me nor should it be construed that I convey any license to use such content that did not come from me; the use of third-party images and the responsibility to assess the fair use of such or to procure a separate license to use them is the sole responsibility of the licensee, any clarification should be directed to the original author, see above
Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 International License.
you can support the author by clicking one of the links below, Thanks!

amazon-nimbosa20-02

Lijit Stats Wijit - Recent Readers List