diff --git a/pipeline/util/src/main/java/org/datacommons/ingestion/util/PipelineUtils.java b/pipeline/util/src/main/java/org/datacommons/ingestion/util/PipelineUtils.java index aa8c4bc2..40ffe7bc 100644 --- a/pipeline/util/src/main/java/org/datacommons/ingestion/util/PipelineUtils.java +++ b/pipeline/util/src/main/java/org/datacommons/ingestion/util/PipelineUtils.java @@ -230,6 +230,9 @@ public void process(ProcessContext c) { if (!g.getNodesMap().isEmpty()) { // Access the single element in the map. PropertyValues pvs = g.getNodesMap().entrySet().iterator().next().getValue(); + if (GraphUtils.isStatisticalPopulation(pvs)) { + return; + } if (GraphUtils.isObservation(pvs)) { c.output(OBSERVATION_NODES_TAG, g); } else { diff --git a/util/src/main/java/org/datacommons/util/GraphUtils.java b/util/src/main/java/org/datacommons/util/GraphUtils.java index 7bcad52f..b6fb72fa 100644 --- a/util/src/main/java/org/datacommons/util/GraphUtils.java +++ b/util/src/main/java/org/datacommons/util/GraphUtils.java @@ -107,6 +107,22 @@ public static boolean isObservation(PropertyValues pvs) { return getPropVal(pvs, GraphUtils.Property.typeOf.name()).contains(GraphUtils.STAT_VAR_OB); } + /** + * Checks if a given set of property values represents a StatisticalPopulation node. + * + * @param pvs The property values to check. + * @return True if the property values indicate a StatisticalPopulation, false otherwise. + */ + public static boolean isStatisticalPopulation(PropertyValues pvs) { + List types = getPropertyValues(pvs.getPvsMap(), Property.typeOf.name()); + for (String type : types) { + if (McfUtil.stripNamespace(type).equals(Vocabulary.STATISTICAL_POPULATION_TYPE)) { + return true; + } + } + return false; + } + /** * Updates a PV in an McfGraph instance * diff --git a/util/src/main/java/org/datacommons/util/Vocabulary.java b/util/src/main/java/org/datacommons/util/Vocabulary.java index f28fd7b4..e5844096 100644 --- a/util/src/main/java/org/datacommons/util/Vocabulary.java +++ b/util/src/main/java/org/datacommons/util/Vocabulary.java @@ -29,6 +29,7 @@ public final class Vocabulary { public static final String SOURCE_TYPE = "Source"; public static final String STAT_VAR_TYPE = "StatisticalVariable"; public static final String STAT_VAR_OBSERVATION_TYPE = "StatVarObservation"; + public static final String STATISTICAL_POPULATION_TYPE = "StatisticalPopulation"; public static final String LEGACY_OBSERVATION_TYPE_SUFFIX = "Observation"; public static final String LEGACY_POPULATION_TYPE_SUFFIX = "Population"; public static final String STAT_VAR_GROUP_TYPE = "StatVarGroup";