Extracting a product ontology from Freebase

This page contains additional information related to paper prepared for EC-Web'14: description and links to transformation patterns, the result of the transformation - Drug Ontology - and also details about the evaluation of DON against Schema.org.

Transformation Patterns

Below you can find a list of transformation patterns with links to their source code files. When the patterns are applied on the preprocessed fragment of Freebase RDF dump in the specified order (and following the enclosed instructions) using GUIPOT the result is the Drug Ontology (DON) as described in the paper.
  1. annotate-original-state_classes
    Annotates all classes with owl:deprecated. Used to keep track of the transformation.
    Pattern instance selection: all instances.
    Transformation strategy: conservative
  2. annotate-original-state_objectprops
    Annotates all object properties with owl:deprecated. Used to keep track of the transformation.
    Pattern instance selection: all instances.
    Transformation strategy: conservative
  3. make_product_class
    Makes selected classes subclasses of gr:ProductOrService.
    Pattern instance selection: medicine.drug, medicine.drug_formulation, medicine.manufactured_drug_from and medicine.compound_drug
    Transformation strategy: progressive
  4. make_qualitative_class
    Makes selected classes subclasses of gr:QualitativeClass.
    Pattern instance selection: all classes with “medicine.drug_” prefix except medicine.drug_brand, medicine.drug_manufacturer (equivalent properties are already present in GoodRelations) and medicine.drug_strength (is transformed later)
    Transformation strategy: progressive
  5. make_qualit_prop
    Makes all properties that have range set to a subclass of gr:QualitativeClass (transformed previously) subproperties of gr:qualitativeProductOrServiceProperty.
    Pattern instance selection: all
    Transformation strategy: progressive
  6. make_qualit_prop-toProdOrServ
    Makes properties that have range set to a subclass of gr:ProductOrService (transformed previously) subproperties of gr:qualitativeProductOrServiceProperty.
    Pattern instance selection: medicine.manufactured_drug_form.manufactured_form_of and medicine.compound_drug.compound_of (others are rather redundant inverse properties and are not used for the final product ontology to keep it simple and lightweight)
    Transformation strategy: progressive
  7. float-prop-with-units
    Finds properties whose range is a class that is a domain for two other properties with ranges of Freebase classes type.text and type.float where the text property is used to specify units of the value specified by the float property. The same situation is already modeled in GoodRelations and the additional two properties are unnecessary. The former property is transformed into a subproperty of gr:quantitativeProductOrServiceProperty with range of gr:QuantitativeValueFloat and the other two properties can be removed at the end of the transformation process.
    Pattern instance selection: all
    Transformation strategy: progressive
  8. boolean_props
  9. boolean_to_feature_props
    Transforms properties with range of type.boolean into instances of a newly created class Feature (subclass of gr:QualitativeValue). A property hasFeature is created with range set to Feature. (Follows modeling style used in Vehicle Sales Ontology)
    Pattern instance selection: all
    Transformation strategy: conservative
  10. datetime_props
    Transforms properties with range of type.datetime into subproperties of datatype property gr:datatypeProductOrServiceProperty.
    Pattern instance selection: all
    Transformation strategy: conservative
  11. enumeration_props
    For properties with range of type.enumeration: they are made subproperties of gr:qualitativeProductOrServiceProperty and their range is changed to a newly created subclass of gr:QualitativeValue. A new datatype property is also created with that class as a domain. As this pattern transforms properties used for medical codes (i.e. rather qualitative values) the intention is to make the codes dereferencable - instances of the newly created subclass of gr:QualitativeValue. The additional datatype property can than be used for the actual value of the code.
    Pattern instance selection: all
    Transformation strategy: progressive
  12. float_to-obj_props
    Transforms properties with range of type.float into subproperties of gr:quantitativeProductOrServiceProperty with range of gr:QuantitativeValueFloat.
    Pattern instance selection: all
    Transformation strategy: progressive
  13. int_to-obj_props
    Transforms properties with range of type.int into subproperties of gr:quantitativeProductOrServiceProperty with range of gr:QuantitativeValueInteger.
    Pattern instance selection: all
    Transformation strategy: progressive
  14. rawstring_props
    Transforms properties with range of type.rawstring into datatype subproperties of gr:datatypeProductOrServiceProperty.
    Pattern instance selection: all
    Transformation strategy: conservative
  15. text_props
    Transforms properties with range of type.text into datatype subproperties of gr:datatypeProductOrServiceProperty.
    Pattern instance selection: all
    Transformation strategy: conservative
  16. All entities with owl:deprecated "true" annotation can now be removed from the ontology.

Evaluation against Schema.org details

Below you can find links to the comparison of the properties as mentioned in Section 4.3 of the paper.