edu.stanford.protege.webprotege.index.BuiltInSkosEntitiesIndexImpl Maven / Gradle / Ivy
The newest version!
package edu.stanford.protege.webprotege.index;
import com.google.common.collect.ImmutableSet;
import org.semanticweb.owlapi.model.*;
import org.semanticweb.owlapi.vocab.SKOSVocabulary;
import javax.annotation.Nonnull;
import javax.inject.Inject;
import java.util.Collection;
import java.util.stream.Stream;
import static com.google.common.collect.ImmutableSet.toImmutableSet;
/**
* Matthew Horridge
* Stanford Center for Biomedical Informatics Research
* 2020-07-27
*/
public class BuiltInSkosEntitiesIndexImpl implements BuiltInSkosEntitiesIndex {
@Nonnull
private final ImmutableSet annotationProperties;
@Nonnull
private final ImmutableSet classes;
@Nonnull
private final ImmutableSet objectProperties;
@Nonnull
private final ImmutableSet dataProperties;
@Inject
public BuiltInSkosEntitiesIndexImpl(@Nonnull OWLDataFactory dataFactory) {
annotationProperties = SKOSVocabulary.getAnnotationProperties(dataFactory)
.stream()
.collect(toImmutableSet());
classes = SKOSVocabulary.getClasses(dataFactory)
.stream()
.collect(toImmutableSet());
objectProperties = SKOSVocabulary.getObjectProperties(dataFactory)
.stream()
.collect(toImmutableSet());
dataProperties = SKOSVocabulary.getDataProperties(dataFactory)
.stream()
.collect(toImmutableSet());
}
@Nonnull
@Override
public Stream getBuiltInEntities() {
return Stream.of(annotationProperties, classes, objectProperties, dataProperties)
.flatMap(Collection::stream);
}
@Nonnull
@Override
public Stream getAnnotationProperties() {
return annotationProperties.stream();
}
@Nonnull
@Override
public Stream getClasses() {
return classes.stream();
}
@Nonnull
@Override
public Stream getObjectProperties() {
return objectProperties.stream();
}
@Nonnull
@Override
public Stream getDataProperties() {
return dataProperties.stream();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy