X2O is a semi-automated ontology learning algorithm designed to interrogate incoming streams of disparate and 'unfamiliar' XML messages and automatically construct a proto-ontology (T-Box) that can represent the heterogeneity of the schema and content contributed by different streams of XML. X2O also detects change in schema of incoming XML stream and modifies the proto-ontology to accommodate the change. An example use-case for X2O is automated and real-time integration of heterogeneous XML messages submitted by multiple disparate EMR systems to a biosurveillance system or data warehouse. X2O employs advanced text processing and vocabulary encoding to normalize and integrate semi-structured and structured content at the same time it converts XML content to RDF/OWL representation.