Proper OWL2 EL profile learning support
In OWL2 EL only the following constructs are supported(see http://www.w3.org/TR/owl2-profiles/#OWL_2_EL):
- existential quantification to a class expression (ObjectSomeValuesFrom) or a data range (DataSomeValuesFrom)
- existential quantification to an individual (ObjectHasValue) or a literal (DataHasValue)
- self-restriction (ObjectHasSelf)
- enumerations involving a single individual (ObjectOneOf) or a single literal (DataOneOf)
- intersection of classes (ObjectIntersectionOf) and data ranges (DataIntersectionOf)
The basic EL learning algorithm ELTL only supports a subset of the constructs above, i.e. everything seems to be correct. On the other hand, we should add support for DataSomeValuesFrom and DataHasValue.
A special case is (ELTL + disjunctive) which also uses disjunction of class expression, i.e. solution might not be fit to OWL2 EL. Moreover, support for DataSomeValuesFrom was recently added. The problem here is that only a particular set of datatypes is supported (which is necessary to obtain the desired computational properties):
- rdf:PlainLiteral
- rdf:XMLLiteral
- rdfs:Literal
- owl:real
- owl:rational
- xsd:decimal
- xsd:integer
- xsd:nonNegativeInteger
- xsd:string
- xsd:normalizedString
- xsd:token
- xsd:Name
- xsd:NCName
- xsd:NMTOKEN
- xsd:hexBinary
- xsd:base64Binary
- xsd:anyURI
- xsd:dateTime
- xsd:dateTimeStamp
This means, that e.g. xsd:double can not be used and it's not clear how to handle such cases.