American Community Survey Linked Open Data
as of 3.9.2017
developed by data.world
in partnership with the US Census Bureau
1.0 - The American Community Survey
The American Community Survey (ACS) is part of the U.S. Census Bureau's Decennial Census Program and is designed to provide current demographic, social, economic, and housing estimates throughout the decade. The ACS provides information on more than 40 topics, including educational attainment, language spoken at home, ability to speak English, the foreign-born, marital status, migration, and many more. Each year the survey randomly samples around 3.5 million addresses and produces statistics that cover 1-year and 5-year periods for geographic areas in the United States and Puerto Rico, ranging from neighborhoods to congressional districts to the entire nation. For more information about the ACS, please visit our main page at: www.census.gov/acs. ACS data are published through a number of channels, including American FactFinder, QuickFacts, Easy Stats, the Census Bureau’s Application Programming Interface (API), and data.world. This document will brief data users on the contents of the ACS microdata samples available on AWS Public Datasets and explain how they can use them to obtain statistics.
2.0 - The Public Use Microdata Sample: ACS Microdata
The Public Use Microdata Sample (PUMS) contains a sample of actual responses to the American Community Survey (ACS). The PUMS is a representative sample of the entire US collected via mail, web, and computer-assisted phone interview surveys of American residents. The PUMS dataset includes variables for nearly every question on the survey, as well as many new variables that were derived after the fact from multiple survey responses (such as poverty status). Each record in the file represents a single Person, or--in the case of Housing--a single housing unit. Person records are organized into households, making possible the study of people within the contexts of their families and other household members. The PUMS contains 204 properties (or variables) regarding Person records and 155 properties regarding Housing units. PUMS files for an individual year, such as the 2014 and 2015 linked ACS, contain data on approximately one percent of the United States population.
The PUMS files are much more flexible than the aggregate data available in the ACS Summary Files via American FactFinder or the Census API, though the PUMS also tends to be more complicated to use. Working with PUMS data typically involves downloading large datasets onto a local computer and analyzing the data using statistical software such as R, SPSS, Stata, or SAS. Because this linked ACS data has been made available on AWS Public Datasets as a queryable graph database, however, users are not required to download the raw PUMS files. Nonetheless, users may still require statistical packages like those mentioned above to perform offline analysis on exports of the data.
Since all ACS responses are strictly confidential, many variables in the PUMS files have been modified in order to protect the confidentiality of survey respondents. For instance, particularly high incomes are "top-coded," uncommon birthplace or ancestry responses are grouped into broader categories, and the PUMS files provide a very limited set of geographic variables. Refer to the main PUMS Readme document located on the Census website for more information about privacy and geography in the PUMS.
2.1 - Summary Files vs Microdata
Summary files such as the tables and profiles accessible via American FactFinder (AFF), the Census API, and data.world, show data that have already been tabulated for specific geographic areas.
PUMS files, in contrast, include population and housing unit records with individual response information such as relationship, sex, educational attainment, and employment status.
The Census Bureau produces this set of untabulated records about individual people and housing units so that data users can create custom tables that are not available through pretabulated (or summary) ACS data products.
2.2 - Linked Data
This linked ACS PUMS release provides users with new features and benefits.
New Features:
- Original PUMS csv ---> New Linked ACS graph data
- Flat, tabular data ---> URIs denote linkable concepts
- Complex data dictionary ---> Metadata built into the data itself
- Unwieldy raw files ---> Secure, queryable database
Benefits:
- Usability and availability: By using semantic technologies to both model and distribute the data, the data is more available and more useable by machines.
- Sharing knowledge with data: With semantic modeling we put the information about the data into the data itself, reducing friction caused by the separation of the data from the data dictionary.
- Better starting point: This exploratory data format gives users a leg up when learning the data schema.
3.0 - The Data
3.1 - S3 Location
The data is available on a public AWS S3 bucket:
s3://dataworld-linked-acs
3.2 - Directory Structure
s3://dataworld-linked-acs/
|-- RawData
|-- Ontology
|-- EnhancedData
|-- TabulationQueries
4.0 - Description
4.1 - RawData
This folder contains raw, transliterated files converted directly from US Census input CSVs to TTL. This folder is only included to show provenance of the enhanced data and can be ignored by most users.
There are 233 total files, at least 4 per state - more populace states will have more files.
The raw data is split by record type (Census Person or Housing records), by year (2014 or 2015), and by State (AK, AL, ... WY).
Naming convention:ss(14|15)(h|p)(AK,WY).ttl
e.g. - ss14pwy.ttl
contains Person records for the State of Wyoming (WY) for year 2014.
Larger states like CA and TX are split into multiple files as such:ss14hca.1.ttl.gz
ss14hca.2.ttl.gz
Each raw data graph namespace depends on the year:ss2014: <http://www.census.gov/acs/pums/2014#>
ss2015: <http://www.census.gov/acs/pums/2015#>
4.2 - Ontology
- The
acs_schema.ttl
file is the American Community Survey (ACS) ontology. It stores metadata of all classes and properties in the ACS. It is required for running the included tabulation queries and general querying of the data. PUMA.ttl
contains metadata for and linkages between Public Use Microdata Area Codes (PUMAs) and other geographic entities detailed in the ACS microdata release, such as US States and ZIP Census Tabulation Areas (ZCTAs).ZCTA.ttl
and2014PUMAToZCTAAllocFactors.ttl
can be used to crosswalk estimate tabulations to ZIP codes
4.3 - EnhancedData
The EnhancedData files are split in the same manner as RawData, by record type (Census Person or Housing records), by year (2014 or 2015), and by State (AK, AL, ... WY). As with RawData, larger states are split across multiple files.
The main classes in the data are of rdf:type acs:Housing
and rdf:type acs:Person
, which are described by a multitude of properties. Chief among these properities is acs:hasPrimaryWeight
, the value of which specifies the statistical weighting associated with the record. Therefore, in order to tabulate an estimate for a given population, one must simply describe that population in a query to find all records that fit the demographic and total those records' weights.
For example, this query tabulates each state's total population for all states in the US except Puerto Rico for the year 2015:
PREFIX acs: <http://www.census.gov/acs/pums/schema#>
SELECT ?state (SUM(?w) AS ?totalPopulation)
FROM <http://www.census.gov/acs/pums/2015/enhanced>
WHERE {
[ a acs:Person ;
acs:hasState ?state ;
acs:hasPrimaryWeight ?w ]
FILTER( ?state != acs:State_72 )
}
GROUP BY ?state
ORDER BY ?state
In addition to acs:hasPrimaryWeight
, the linked ACS also includes 80 Replicate Weights per record, which can be used to generate the most-accurate standard errors for households or individuals, but these are more difficult to use than the Primary Weights. To query these weight values, the user must select each individually, and there are 80 replicate weights per record. Refer to Section 7.1 in the Appendix of this document for a sample query to do this, and refer to the PUMS ReadMe on the Census website for more information on how to use these replicate weights to calculate estimates and margins-of-error.
Like the RawData, the EnhancedData graph namespace depends on the year:
<http://www.census.gov/acs/pums/2014/enhanced#>
<http://www.census.gov/acs/pums/2015/enhanced#>
4.4 - TabulationQueries
Like the previous query in the above EnhancedData section, the TabulationQueries perform similar tabulations of the EnhancedData. These queries were used to verify the data and replicate the estimates provided in the Census ACS PUMS Technical Documentation. The estimates can be found on the following Census webpage listed under PUMS Estimates for User Verification: http://www.census.gov/programs-surveys/acs/technical-documentation/pums/documentation.html
5.0 - Getting Started
5.1 - Setting up Blazegraph on EC2
- Log into your AWS console
- Select the
US East (N. Virginia) (us-east-1)
region - Go to the EC2 console
- Click the "Launch Instance" button
- Choose the "Community AMIs" tab on the left-hand side
- Type "blazegraph" into the "Search community AMIs" box and press Enter
- Select the image named
graphdb-blazegraph-2.0.1 - ami-b19781db
- On "Step 2: Choose an Instance Type", select
m4.xlarge
and select "Next Configure Instance Details" - You can leave the defaults, unless you need to select VPC or IAM role settings - click "Next Add Storage"
- Change the Size (GiB) to 1000 (we need a 1 TB disk)
- Click "Next Add Tabs", leave the default settings, then click "Next Configure Security Group"
- Leave the SSH rule
- Add a "Custom TCP Rule" to expose port 9999, setting "Port Range" to "9999" and "Source" to "0.0.0.0/0, ::/0" (the default)
- Go to "Launch" - you will be prompted to select or generate a keypair - if you already have one set up, you can use that - if not, generate one now - name it something memorable, like "blazegraph", and download the keypair when prompted
- Finally, "Launch" the instance
- Once it's completed, you should be able to find the field "Public DNS (IPv4)", which will have a hostname in it - copy/paste that into your browser, and append
:9999
to it - that will take you to the Blazegraph console - You can also ssh to the server by running
ssh -i blazegraph.pem ec2-user@ec2-75-101-176-246.compute-1.amazonaws.com
. You will need to replace the hostname in this command with your own.
5.2 - Setting up AWS CLI
NOTE: If you already have the AWS CLI installed and configured, continue to Section 5.3 - Copying the Linked ACS data from S3 to EC2
- Install the AWS CLI
- The CLI allows the user to programmatically launch and monitor progress of AWS jobs from the command line
- Test the Install
- In the command shell, navigate to the install location for the CLI and run
aws help
. The AWS CLI help file should be displayed
- In the command shell, navigate to the install location for the CLI and run
- Access Keys
- If you don’t already have an access key, get one by following the instructions here: http://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-set-up.html#cli-signup.
- Configure the CLI
- Your credentials are used to calculate the signature value for every request you make. In the command shell, navigate to the install location for the AWS CLI and run
aws configure
as shown here: http://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html#cli-quick-configuration. (Note: This creates a “config” file and “credentials” file inC:\Users\[USERNAME]\.aws
on windows and~/.aws
on Linux and macOS)- Use the access key values that you created in Step 3 to populate AWS Access Key ID and AWS Secret Access Key
- Set the Default region name to
us-east-1
- Set Default output format to “json"
- Your credentials are used to calculate the signature value for every request you make. In the command shell, navigate to the install location for the AWS CLI and run
5.3 - Copying the Linked ACS data from S3 to EC2
- If you have not already ssh'd into your EC2 server, do so by running:
ssh -i blazegraph.pem ec2-user@ec2-75-101-176-246.compute-1.amazonaws.com
- Create new directories in the instance called "ontology" and "enhancedData"
mkdir ~/ontology
mkdir ~/enhancedData
- Transfer the ontology folder using the S3 "sync" command
aws s3 sync s3://dataworld-linked-acs/Ontology ~/ontology/
- Transfer all or part of the data to the enhancedData directory
- To transfer all, use the "sync" command:
aws s3 sync s3://dataworld-linked-acs/EnhancedData ~/enhancedData/
- To transfer individual files, use the "cp" command:
- e.g.
aws s3 cp s3://dataworld-linked-acs/EnhancedData/ss14hwy.ttl.gz ~/enhancedData/ss14hwy.ttl.gz
- e.g.
- To transfer all, use the "sync" command:
- Unzip the enhanced data files you wish to load in Blazegraph with
gzip
ortar
- e.g.
tar xzvf ~/enhancedData/*.ttl.gz
- e.g.
5.4 - Loading the data into Blazegraph
- Access the Blazegraph console in your browser (See Section 5.1 - Step 16 above for help accessing the console)
- Go to the "Namespaces" tab
- Type in "ACS" in the "Name" box and select "quads" from the "Mode:" dropdown, and leave the other boxes unchecked (default)
- Click "Create namespace"
- Another popup window should appear - click "Create"
- Your new "ACS" namespace should appear under the "Namespaces" list
- Click "Use" next to the "ACS" name
- Go to the "Update" tab
- Either use the
LOAD
command to load files into named graphs, as such:
Or, for large numbers of files, loads can be programmatically sent by a Shell script with# Schema file LOAD <file:///home/ec2-user/ontology/acs_schema.ttl> INTO GRAPH <http://www.census.gov/acs/pums/schema>; # Geography files LOAD <file:///home/ec2-user/ontology/PUMA.ttl> INTO GRAPH <http://www.census.gov/geo>; LOAD <file:///home/ec2-user/ontology/ZCTA.ttl> INTO GRAPH <http://www.census.gov/geo>; LOAD <file:///home/ec2-user/ontology/2014PUMAToZCTAAllocFactors.ttl> INTO GRAPH <http://www.census.gov/geo>; # 2014 enhanced data LOAD <file:///home/ec2-user/enhancedData/ss14hak.ttl> INTO GRAPH <http://www.census.gov/acs/pums/2014/enhanced>; LOAD <file:///home/ec2-user/enhancedData/ss14pak.ttl> INTO GRAPH <http://www.census.gov/acs/pums/2014/enhanced>; LOAD <file:///home/ec2-user/enhancedData/ss14hwy.ttl> INTO GRAPH <http://www.census.gov/acs/pums/2014/enhanced>; LOAD <file:///home/ec2-user/enhancedData/ss14pwy.ttl> INTO GRAPH <http://www.census.gov/acs/pums/2014/enhanced>; # 2015 enhanced data LOAD <file:///home/ec2-user/enhancedData/ss15hak.ttl> INTO GRAPH <http://www.census.gov/acs/pums/2015/enhanced>; LOAD <file:///home/ec2-user/enhancedData/ss15pak.ttl> INTO GRAPH <http://www.census.gov/acs/pums/2015/enhanced>; LOAD <file:///home/ec2-user/enhancedData/ss15hwy.ttl> INTO GRAPH <http://www.census.gov/acs/pums/2015/enhanced>; LOAD <file:///home/ec2-user/enhancedData/ss15pwy.ttl> INTO GRAPH <http://www.census.gov/acs/pums/2015/enhanced>;
curl
commands
NOTE: Depending on the amount of data the user is LOADing, the LOAD operations can take a long time.
5.5 - Querying the data
- Users can run SPARQL queries on the data using two methods:
- From the "Query" tab of the Blazegraph console in your browser (See Section 5.1 - Step 16 above for help accessing the console)
- Using
curl
from the command line (See the Blazegraph API documentation for help)
- Refer to the queries located at
s3://dataworld-linked-acs/TabulationQueries
for samples - Refer to the data.world SPARQL Tutorial for an interactive introduction to the SPARQL query language
6.0 - Contact
If you have general questions or comments about the American Community Survey, you can submit a question online at ask.census.gov.
For technical questions or comments about the linked ACS release please email: census@data.world.
For questions regarding survey methodology and accuracy of the ACS PUMS contact: acso.users.support@census.gov.
7.0 - Appendix
7.1 - Querying Replicate Weights
Replicate Weights can be used to generate the most-accurate standard errors for households or individuals, but these are more difficult to use than the Primary Weights. To query these weight values, the user must select each individually, and there are 80 replicate weights per record.
The following query selects 1 person record from the 2015 enhanced graph and returns the serial number, person number, and all replicate weights associated with that record. Users should note the LIMIT 1
statement at the end of this query. Removing this statement will cause the query to perform the select on all person records in the data, which will take a significant amount of time to process.
PREFIX acs: <http://www.census.gov/acs/pums/schema#>
SELECT ?serialNumber ?personNumber
?pwgtp01 ?pwgtp02 ?pwgtp03 ?pwgtp04 ?pwgtp05 ?pwgtp06 ?pwgtp07 ?pwgtp08 ?pwgtp09 ?pwgtp10
?pwgtp11 ?pwgtp12 ?pwgtp13 ?pwgtp14 ?pwgtp15 ?pwgtp16 ?pwgtp17 ?pwgtp18 ?pwgtp19 ?pwgtp20
?pwgtp21 ?pwgtp22 ?pwgtp23 ?pwgtp24 ?pwgtp25 ?pwgtp26 ?pwgtp27 ?pwgtp28 ?pwgtp29 ?pwgtp30
?pwgtp31 ?pwgtp32 ?pwgtp33 ?pwgtp34 ?pwgtp35 ?pwgtp36 ?pwgtp37 ?pwgtp38 ?pwgtp39 ?pwgtp40
?pwgtp41 ?pwgtp42 ?pwgtp43 ?pwgtp44 ?pwgtp45 ?pwgtp46 ?pwgtp47 ?pwgtp48 ?pwgtp49 ?pwgtp50
?pwgtp51 ?pwgtp52 ?pwgtp53 ?pwgtp54 ?pwgtp55 ?pwgtp56 ?pwgtp57 ?pwgtp58 ?pwgtp59 ?pwgtp60
?pwgtp61 ?pwgtp62 ?pwgtp63 ?pwgtp64 ?pwgtp65 ?pwgtp66 ?pwgtp67 ?pwgtp68 ?pwgtp69 ?pwgtp70
?pwgtp71 ?pwgtp72 ?pwgtp73 ?pwgtp74 ?pwgtp75 ?pwgtp76 ?pwgtp77 ?pwgtp78 ?pwgtp79 ?pwgtp80
FROM <http://www.census.gov/acs/pums/2015/enhanced>
WHERE {
[
a acs:Person ;
acs:hasSerialNumber ?serialNumber ;
acs:hasPersonNumber ?personNumber ;
acs:hasWeight [ acs:hasReplicateValue "pwgtp01" ; acs:hasWeightValue ?pwgtp01 ] ;
acs:hasWeight [ acs:hasReplicateValue "pwgtp02" ; acs:hasWeightValue ?pwgtp02 ] ;
acs:hasWeight [ acs:hasReplicateValue "pwgtp03" ; acs:hasWeightValue ?pwgtp03 ] ;
acs:hasWeight [ acs:hasReplicateValue "pwgtp04" ; acs:hasWeightValue ?pwgtp04 ] ;
acs:hasWeight [ acs:hasReplicateValue "pwgtp05" ; acs:hasWeightValue ?pwgtp05 ] ;
acs:hasWeight [ acs:hasReplicateValue "pwgtp06" ; acs:hasWeightValue ?pwgtp06 ] ;
acs:hasWeight [ acs:hasReplicateValue "pwgtp07" ; acs:hasWeightValue ?pwgtp07 ] ;
acs:hasWeight [ acs:hasReplicateValue "pwgtp08" ; acs:hasWeightValue ?pwgtp08 ] ;
acs:hasWeight [ acs:hasReplicateValue "pwgtp09" ; acs:hasWeightValue ?pwgtp09 ] ;
acs:hasWeight [ acs:hasReplicateValue "pwgtp10" ; acs:hasWeightValue ?pwgtp10 ] ;
acs:hasWeight [ acs:hasReplicateValue "pwgtp11" ; acs:hasWeightValue ?pwgtp11 ] ;
acs:hasWeight [ acs:hasReplicateValue "pwgtp12" ; acs:hasWeightValue ?pwgtp12 ] ;
acs:hasWeight [ acs:hasReplicateValue "pwgtp13" ; acs:hasWeightValue ?pwgtp13 ] ;
acs:hasWeight [ acs:hasReplicateValue "pwgtp14" ; acs:hasWeightValue ?pwgtp14 ] ;
acs:hasWeight [ acs:hasReplicateValue "pwgtp15" ; acs:hasWeightValue ?pwgtp15 ] ;
acs:hasWeight [ acs:hasReplicateValue "pwgtp16" ; acs:hasWeightValue ?pwgtp16 ] ;
acs:hasWeight [ acs:hasReplicateValue "pwgtp17" ; acs:hasWeightValue ?pwgtp17 ] ;
acs:hasWeight [ acs:hasReplicateValue "pwgtp18" ; acs:hasWeightValue ?pwgtp18 ] ;
acs:hasWeight [ acs:hasReplicateValue "pwgtp19" ; acs:hasWeightValue ?pwgtp19 ] ;
acs:hasWeight [ acs:hasReplicateValue "pwgtp20" ; acs:hasWeightValue ?pwgtp20 ] ;
acs:hasWeight [ acs:hasReplicateValue "pwgtp21" ; acs:hasWeightValue ?pwgtp21 ] ;
acs:hasWeight [ acs:hasReplicateValue "pwgtp22" ; acs:hasWeightValue ?pwgtp22 ] ;
acs:hasWeight [ acs:hasReplicateValue "pwgtp23" ; acs:hasWeightValue ?pwgtp23 ] ;
acs:hasWeight [ acs:hasReplicateValue "pwgtp24" ; acs:hasWeightValue ?pwgtp24 ] ;
acs:hasWeight [ acs:hasReplicateValue "pwgtp25" ; acs:hasWeightValue ?pwgtp25 ] ;
acs:hasWeight [ acs:hasReplicateValue "pwgtp26" ; acs:hasWeightValue ?pwgtp26 ] ;
acs:hasWeight [ acs:hasReplicateValue "pwgtp27" ; acs:hasWeightValue ?pwgtp27 ] ;
acs:hasWeight [ acs:hasReplicateValue "pwgtp28" ; acs:hasWeightValue ?pwgtp28 ] ;
acs:hasWeight [ acs:hasReplicateValue "pwgtp29" ; acs:hasWeightValue ?pwgtp29 ] ;
acs:hasWeight [ acs:hasReplicateValue "pwgtp30" ; acs:hasWeightValue ?pwgtp30 ] ;
acs:hasWeight [ acs:hasReplicateValue "pwgtp31" ; acs:hasWeightValue ?pwgtp31 ] ;
acs:hasWeight [ acs:hasReplicateValue "pwgtp32" ; acs:hasWeightValue ?pwgtp32 ] ;
acs:hasWeight [ acs:hasReplicateValue "pwgtp33" ; acs:hasWeightValue ?pwgtp33 ] ;
acs:hasWeight [ acs:hasReplicateValue "pwgtp34" ; acs:hasWeightValue ?pwgtp34 ] ;
acs:hasWeight [ acs:hasReplicateValue "pwgtp35" ; acs:hasWeightValue ?pwgtp35 ] ;
acs:hasWeight [ acs:hasReplicateValue "pwgtp36" ; acs:hasWeightValue ?pwgtp36 ] ;
acs:hasWeight [ acs:hasReplicateValue "pwgtp37" ; acs:hasWeightValue ?pwgtp37 ] ;
acs:hasWeight [ acs:hasReplicateValue "pwgtp38" ; acs:hasWeightValue ?pwgtp38 ] ;
acs:hasWeight [ acs:hasReplicateValue "pwgtp39" ; acs:hasWeightValue ?pwgtp39 ] ;
acs:hasWeight [ acs:hasReplicateValue "pwgtp40" ; acs:hasWeightValue ?pwgtp40 ] ;
acs:hasWeight [ acs:hasReplicateValue "pwgtp41" ; acs:hasWeightValue ?pwgtp41 ] ;
acs:hasWeight [ acs:hasReplicateValue "pwgtp42" ; acs:hasWeightValue ?pwgtp42 ] ;
acs:hasWeight [ acs:hasReplicateValue "pwgtp43" ; acs:hasWeightValue ?pwgtp43 ] ;
acs:hasWeight [ acs:hasReplicateValue "pwgtp44" ; acs:hasWeightValue ?pwgtp44 ] ;
acs:hasWeight [ acs:hasReplicateValue "pwgtp45" ; acs:hasWeightValue ?pwgtp45 ] ;
acs:hasWeight [ acs:hasReplicateValue "pwgtp46" ; acs:hasWeightValue ?pwgtp46 ] ;
acs:hasWeight [ acs:hasReplicateValue "pwgtp47" ; acs:hasWeightValue ?pwgtp47 ] ;
acs:hasWeight [ acs:hasReplicateValue "pwgtp48" ; acs:hasWeightValue ?pwgtp48 ] ;
acs:hasWeight [ acs:hasReplicateValue "pwgtp49" ; acs:hasWeightValue ?pwgtp49 ] ;
acs:hasWeight [ acs:hasReplicateValue "pwgtp50" ; acs:hasWeightValue ?pwgtp50 ] ;
acs:hasWeight [ acs:hasReplicateValue "pwgtp51" ; acs:hasWeightValue ?pwgtp51 ] ;
acs:hasWeight [ acs:hasReplicateValue "pwgtp52" ; acs:hasWeightValue ?pwgtp52 ] ;
acs:hasWeight [ acs:hasReplicateValue "pwgtp53" ; acs:hasWeightValue ?pwgtp53 ] ;
acs:hasWeight [ acs:hasReplicateValue "pwgtp54" ; acs:hasWeightValue ?pwgtp54 ] ;
acs:hasWeight [ acs:hasReplicateValue "pwgtp55" ; acs:hasWeightValue ?pwgtp55 ] ;
acs:hasWeight [ acs:hasReplicateValue "pwgtp56" ; acs:hasWeightValue ?pwgtp56 ] ;
acs:hasWeight [ acs:hasReplicateValue "pwgtp57" ; acs:hasWeightValue ?pwgtp57 ] ;
acs:hasWeight [ acs:hasReplicateValue "pwgtp58" ; acs:hasWeightValue ?pwgtp58 ] ;
acs:hasWeight [ acs:hasReplicateValue "pwgtp59" ; acs:hasWeightValue ?pwgtp59 ] ;
acs:hasWeight [ acs:hasReplicateValue "pwgtp60" ; acs:hasWeightValue ?pwgtp60 ] ;
acs:hasWeight [ acs:hasReplicateValue "pwgtp61" ; acs:hasWeightValue ?pwgtp61 ] ;
acs:hasWeight [ acs:hasReplicateValue "pwgtp62" ; acs:hasWeightValue ?pwgtp62 ] ;
acs:hasWeight [ acs:hasReplicateValue "pwgtp63" ; acs:hasWeightValue ?pwgtp63 ] ;
acs:hasWeight [ acs:hasReplicateValue "pwgtp64" ; acs:hasWeightValue ?pwgtp64 ] ;
acs:hasWeight [ acs:hasReplicateValue "pwgtp65" ; acs:hasWeightValue ?pwgtp65 ] ;
acs:hasWeight [ acs:hasReplicateValue "pwgtp66" ; acs:hasWeightValue ?pwgtp66 ] ;
acs:hasWeight [ acs:hasReplicateValue "pwgtp67" ; acs:hasWeightValue ?pwgtp67 ] ;
acs:hasWeight [ acs:hasReplicateValue "pwgtp68" ; acs:hasWeightValue ?pwgtp68 ] ;
acs:hasWeight [ acs:hasReplicateValue "pwgtp69" ; acs:hasWeightValue ?pwgtp69 ] ;
acs:hasWeight [ acs:hasReplicateValue "pwgtp70" ; acs:hasWeightValue ?pwgtp70 ] ;
acs:hasWeight [ acs:hasReplicateValue "pwgtp71" ; acs:hasWeightValue ?pwgtp71 ] ;
acs:hasWeight [ acs:hasReplicateValue "pwgtp72" ; acs:hasWeightValue ?pwgtp72 ] ;
acs:hasWeight [ acs:hasReplicateValue "pwgtp73" ; acs:hasWeightValue ?pwgtp73 ] ;
acs:hasWeight [ acs:hasReplicateValue "pwgtp74" ; acs:hasWeightValue ?pwgtp74 ] ;
acs:hasWeight [ acs:hasReplicateValue "pwgtp75" ; acs:hasWeightValue ?pwgtp75 ] ;
acs:hasWeight [ acs:hasReplicateValue "pwgtp76" ; acs:hasWeightValue ?pwgtp76 ] ;
acs:hasWeight [ acs:hasReplicateValue "pwgtp77" ; acs:hasWeightValue ?pwgtp77 ] ;
acs:hasWeight [ acs:hasReplicateValue "pwgtp78" ; acs:hasWeightValue ?pwgtp78 ] ;
acs:hasWeight [ acs:hasReplicateValue "pwgtp79" ; acs:hasWeightValue ?pwgtp79 ] ;
acs:hasWeight [ acs:hasReplicateValue "pwgtp80" ; acs:hasWeightValue ?pwgtp80 ]
]
}
LIMIT 1