NIHVIVO-2120 fix for bug that generated statements with rdfs:Literal datatypes

This commit is contained in:
bjl23 2011-02-11 20:03:14 +00:00
parent 48d52f77cf
commit 82047bb17a

View file

@ -488,7 +488,8 @@ public class DataPropertyDaoJena extends PropertyDaoJena implements
RDF.type, RDF.type,
rest) rest)
) { ) {
datatypeURI = avfrest.getAllValuesFrom().getURI(); datatypeURI = convertRequiredDatatypeURI(
avfrest.getAllValuesFrom().getURI());
break; break;
} else { } else {
// check if the restriction applies to one of the individual's types // check if the restriction applies to one of the individual's types
@ -497,7 +498,8 @@ public class DataPropertyDaoJena extends PropertyDaoJena implements
equivOrSubResources.addAll(ontModel.listSubjectsWithProperty(OWL.equivalentClass, rest).toList()); equivOrSubResources.addAll(ontModel.listSubjectsWithProperty(OWL.equivalentClass, rest).toList());
for(Resource equivOrSubRes : equivOrSubResources) { for(Resource equivOrSubRes : equivOrSubResources) {
if (!equivOrSubRes.isAnon() && vclassURIs.contains(equivOrSubRes.getURI())) { if (!equivOrSubRes.isAnon() && vclassURIs.contains(equivOrSubRes.getURI())) {
datatypeURI = avfrest.getAllValuesFrom().getURI(); datatypeURI = convertRequiredDatatypeURI(
avfrest.getAllValuesFrom().getURI());
break; break;
} }
} }
@ -512,6 +514,18 @@ public class DataPropertyDaoJena extends PropertyDaoJena implements
return datatypeURI; return datatypeURI;
} }
/**
* Converts datatypes used in allValuesFromRestrictions to actual
* requirements for editing. Initially, this means we filter out
* rdfs:Literal because we don't want to populate literals with this
* as a datatype.
*/
private String convertRequiredDatatypeURI(String datatypeURI) {
return (RDFS.Literal.getURI().equals(datatypeURI))
? null
: datatypeURI;
}
public String getRequiredDatatypeURI(Individual individual, DataProperty dataprop) { public String getRequiredDatatypeURI(Individual individual, DataProperty dataprop) {
return getRequiredDatatypeURI(individual,dataprop,getVClassURIs(individual)); return getRequiredDatatypeURI(individual,dataprop,getVClassURIs(individual));
} }