Search in sources :

Example 6 with PredicateInUse

use of nl.knaw.huygens.timbuctoo.core.dto.rdf.PredicateInUse in project timbuctoo by HuygensING.

the class TinkerPopOperationsTest method retractPropertyRemovesTheValueTypeFromThePredicateIfItDoesNotApplyToAnyEntity.

@Test
public void retractPropertyRemovesTheValueTypeFromThePredicateIfItDoesNotApplyToAnyEntity() {
    TinkerPopGraphManager graphManager = newGraph().wrap();
    TinkerPopOperations instance = forGraphWrapper(graphManager);
    Vre vre = minimalCorrectVre(instance, "vre");
    Collection defaultCollection = vre.getCollectionForTypeName(defaultEntityTypeName(vre));
    RdfProperty stringProperty = new RdfProperty("http://example.org/propName", "value", "http://www.w3.org/1999/02/22-rdf-syntax-ns#langString");
    RdfProperty floatProperty = new RdfProperty("http://example.org/propName", "1.5", "http://www.w3.org/2001/XMLSchema#float");
    instance.assertProperty(vre, "http://example.org/1", stringProperty);
    instance.assertProperty(vre, "http://example.org/2", floatProperty);
    instance.assertProperty(vre, "http://example.org/3", floatProperty);
    instance.retractProperty(vre, "http://example.org/1", stringProperty);
    instance.retractProperty(vre, "http://example.org/2", floatProperty);
    List<PredicateInUse> predicates = instance.getPredicatesFor(defaultCollection);
    assertThat(predicates, hasSize(1));
    assertThat(predicates.get(0).getValueTypes(), contains(hasProperty("typeUri", equalTo("http://www.w3.org/2001/XMLSchema#float"))));
}
Also used : TinkerPopGraphManager(nl.knaw.huygens.timbuctoo.server.TinkerPopGraphManager) RdfProperty(nl.knaw.huygens.timbuctoo.core.dto.rdf.RdfProperty) Vre(nl.knaw.huygens.timbuctoo.model.vre.Vre) VreStubs.minimalCorrectVre(nl.knaw.huygens.timbuctoo.model.vre.VreStubs.minimalCorrectVre) CreateCollection(nl.knaw.huygens.timbuctoo.core.dto.CreateCollection) Collection(nl.knaw.huygens.timbuctoo.core.dto.dataset.Collection) PredicateInUse(nl.knaw.huygens.timbuctoo.core.dto.rdf.PredicateInUse) Test(org.junit.Test)

Example 7 with PredicateInUse

use of nl.knaw.huygens.timbuctoo.core.dto.rdf.PredicateInUse in project timbuctoo by HuygensING.

the class RdfImportSessionTest method closeCreatesPropertyDescriptionsForEachPredicate.

@Test
public void closeCreatesPropertyDescriptionsForEachPredicate() {
    List<PredicateInUse> predicates = Lists.newArrayList();
    given(dataStoreOperations.getPredicatesFor(any(Collection.class))).willReturn(predicates);
    PropertyFactory propertyFactory = mock(PropertyFactory.class);
    ArrayList<CreateProperty> createProperties = Lists.newArrayList();
    given(propertyFactory.fromPredicates(predicates)).willReturn(createProperties);
    RdfImportSession instance = rdfImportSessionWithPropertyFactory(VRE_NAME, dataStoreOperations, propertyFactory);
    instance.commit();
    instance.close();
    verify(propertyFactory).fromPredicates(predicates);
    verify(dataStoreOperations).addPropertiesToCollection(any(Collection.class), eq(createProperties));
}
Also used : CreateProperty(nl.knaw.huygens.timbuctoo.core.dto.rdf.CreateProperty) RdfImportSessionStubs.rdfImportSessionWithPropertyFactory(nl.knaw.huygens.timbuctoo.core.RdfImportSessionStubs.rdfImportSessionWithPropertyFactory) PropertyFactory(nl.knaw.huygens.timbuctoo.core.rdf.PropertyFactory) CreateCollection(nl.knaw.huygens.timbuctoo.core.dto.CreateCollection) Collection(nl.knaw.huygens.timbuctoo.core.dto.dataset.Collection) PredicateInUse(nl.knaw.huygens.timbuctoo.core.dto.rdf.PredicateInUse) Test(org.junit.Test)

Example 8 with PredicateInUse

use of nl.knaw.huygens.timbuctoo.core.dto.rdf.PredicateInUse in project timbuctoo by HuygensING.

the class PropertyFactory method convertToProperty.

private CreateProperty convertToProperty(PredicateInUse pred) {
    Stack<ValueTypeInUse> valueTypes = pred.getValueTypes().stream().sorted(comparingInt(o -> o.getEntitiesConnected().size())).collect(toCollection(Stack::new));
    ValueTypeInUse type = valueTypes.pop();
    valueTypes.forEach(vt -> vt.getEntitiesConnected().forEach(e -> importErrorReporter.entityHasWrongTypeForProperty(e, pred.getPredicateUri(), type.getTypeUri(), vt.getTypeUri())));
    return ImmutableCreateProperty.builder().clientName(getPredicateName(pred)).rdfUri(pred.getPredicateUri()).typeUri(type.getTypeUri()).propertyType(getPropertyType(pred.getPredicateUri(), type)).build();
}
Also used : Comparator.comparingInt(java.util.Comparator.comparingInt) ImmutableCreateProperty(nl.knaw.huygens.timbuctoo.core.dto.rdf.ImmutableCreateProperty) PredicateInUse(nl.knaw.huygens.timbuctoo.core.dto.rdf.PredicateInUse) RdfImportErrorReporter(nl.knaw.huygens.timbuctoo.core.RdfImportErrorReporter) Set(java.util.Set) ValueTypeInUse(nl.knaw.huygens.timbuctoo.core.dto.rdf.ValueTypeInUse) CreateProperty(nl.knaw.huygens.timbuctoo.core.dto.rdf.CreateProperty) Stack(java.util.Stack) HashSet(java.util.HashSet) Collectors.toCollection(java.util.stream.Collectors.toCollection) List(java.util.List) Collectors.toList(java.util.stream.Collectors.toList) Util(org.apache.jena.rdf.model.impl.Util) RdfPropertyConverterFactory(nl.knaw.huygens.timbuctoo.rdf.conversion.RdfPropertyConverterFactory) ValueTypeInUse(nl.knaw.huygens.timbuctoo.core.dto.rdf.ValueTypeInUse)

Example 9 with PredicateInUse

use of nl.knaw.huygens.timbuctoo.core.dto.rdf.PredicateInUse in project timbuctoo by HuygensING.

the class PropertyFactory method fromPredicates.

public List<CreateProperty> fromPredicates(List<PredicateInUse> predicates) {
    List<CreateProperty> result = predicates.stream().map(pred -> convertToProperty(pred)).collect(toList());
    Set<String> encounteredLocalnames = new HashSet<>();
    for (int i = 0; i < result.size(); i++) {
        CreateProperty createProperty = result.get(i);
        if (encounteredLocalnames.contains(createProperty.getClientName())) {
            createProperty = ImmutableCreateProperty.copyOf(createProperty).withClientName(createProperty.getRdfUri());
            result.set(i, createProperty);
        }
        encounteredLocalnames.add(createProperty.getClientName());
    }
    return result;
}
Also used : ImmutableCreateProperty(nl.knaw.huygens.timbuctoo.core.dto.rdf.ImmutableCreateProperty) CreateProperty(nl.knaw.huygens.timbuctoo.core.dto.rdf.CreateProperty) Comparator.comparingInt(java.util.Comparator.comparingInt) ImmutableCreateProperty(nl.knaw.huygens.timbuctoo.core.dto.rdf.ImmutableCreateProperty) PredicateInUse(nl.knaw.huygens.timbuctoo.core.dto.rdf.PredicateInUse) RdfImportErrorReporter(nl.knaw.huygens.timbuctoo.core.RdfImportErrorReporter) Set(java.util.Set) ValueTypeInUse(nl.knaw.huygens.timbuctoo.core.dto.rdf.ValueTypeInUse) CreateProperty(nl.knaw.huygens.timbuctoo.core.dto.rdf.CreateProperty) Stack(java.util.Stack) HashSet(java.util.HashSet) Collectors.toCollection(java.util.stream.Collectors.toCollection) List(java.util.List) Collectors.toList(java.util.stream.Collectors.toList) Util(org.apache.jena.rdf.model.impl.Util) RdfPropertyConverterFactory(nl.knaw.huygens.timbuctoo.rdf.conversion.RdfPropertyConverterFactory) HashSet(java.util.HashSet)

Aggregations

PredicateInUse (nl.knaw.huygens.timbuctoo.core.dto.rdf.PredicateInUse)9 ValueTypeInUse (nl.knaw.huygens.timbuctoo.core.dto.rdf.ValueTypeInUse)5 Test (org.junit.Test)5 CreateCollection (nl.knaw.huygens.timbuctoo.core.dto.CreateCollection)4 Collection (nl.knaw.huygens.timbuctoo.core.dto.dataset.Collection)4 CreateProperty (nl.knaw.huygens.timbuctoo.core.dto.rdf.CreateProperty)4 Vre (nl.knaw.huygens.timbuctoo.model.vre.Vre)4 RdfProperty (nl.knaw.huygens.timbuctoo.core.dto.rdf.RdfProperty)3 VreStubs.minimalCorrectVre (nl.knaw.huygens.timbuctoo.model.vre.VreStubs.minimalCorrectVre)3 Comparator.comparingInt (java.util.Comparator.comparingInt)2 HashSet (java.util.HashSet)2 List (java.util.List)2 Set (java.util.Set)2 Stack (java.util.Stack)2 Collectors.toCollection (java.util.stream.Collectors.toCollection)2 Collectors.toList (java.util.stream.Collectors.toList)2 RdfImportErrorReporter (nl.knaw.huygens.timbuctoo.core.RdfImportErrorReporter)2 ImmutableCreateProperty (nl.knaw.huygens.timbuctoo.core.dto.rdf.ImmutableCreateProperty)2 ImmutablePredicateInUse (nl.knaw.huygens.timbuctoo.core.dto.rdf.ImmutablePredicateInUse)2 ImmutableValueTypeInUse (nl.knaw.huygens.timbuctoo.core.dto.rdf.ImmutableValueTypeInUse)2