package at.ac.univie.mminf.qskos4j.issues.concepts;
import at.ac.univie.mminf.qskos4j.issues.Issue;
import at.ac.univie.mminf.qskos4j.result.CollectionResult;
import at.ac.univie.mminf.qskos4j.util.vocab.SkosOntology;
import org.openrdf.OpenRDFException;
import org.openrdf.model.Resource;
import org.openrdf.model.Statement;
import org.openrdf.model.vocabulary.RDF;
import org.openrdf.repository.RepositoryResult;
import java.util.ArrayList;
import java.util.Collection;
/**
* Finds all <a href="http://www.w3.org/TR/skos-reference/#concepts">SKOS Concepts</a> involved in the vocabulary.
*/
public class InvolvedConcepts extends Issue<CollectionResult<Resource>> {
public InvolvedConcepts() {
super("c",
"All Concepts",
"Finds all SKOS concepts involved in the vocabulary",
IssueType.STATISTICAL
);
}
@Override
protected CollectionResult<Resource> invoke() throws OpenRDFException {
RepositoryResult<Statement> result = repCon.getStatements(
null,
RDF.TYPE,
SkosOntology.getInstance().getUri("Concept"),
true);
Collection<Resource> involvedConcepts = new ArrayList<Resource>();
while (result.hasNext()) {
involvedConcepts.add(result.next().getSubject());
}
return new CollectionResult<Resource>(involvedConcepts);
}
}