

{"id":8072,"date":"2021-12-15T16:34:46","date_gmt":"2021-12-15T20:34:46","guid":{"rendered":"https:\/\/sites.temple.edu\/tudsc\/?p=8072"},"modified":"2021-12-17T12:57:09","modified_gmt":"2021-12-17T16:57:09","slug":"querying-wikidata","status":"publish","type":"post","link":"https:\/\/sites.temple.edu\/tudsc\/2021\/12\/15\/querying-wikidata\/","title":{"rendered":"Querying Wikidata with SPARQL"},"content":{"rendered":"<p>By jay winkler<!--more--><\/p>\n<p><span style=\"font-weight: 400\">For many of us, adding \u201cwiki\u201d to the end of a Google search is like a cheat code for getting a quick answer. I know the structure of a Wikipedia article, and if I want an answer to a simple question, like \u201cwhere was E.B. Lewis born\u201d, just finding it on Wikipedia is the fastest way to get it.<\/span><\/p>\n<p><span style=\"font-weight: 400\">But what about more complex questions? What if I wanted to know, say, who are all of the Black artists who were born in Philadelphia? For that, I can turn to <\/span><a href=\"https:\/\/www.wikidata.org\/wiki\/Wikidata:Main_Page\"><span style=\"font-weight: 400\">Wikidata<\/span><\/a><span style=\"font-weight: 400\">. Wikidata is an attempt to convert all of the world\u2019s information into a structured, queryable dataset. There are Wikidata items for a huge range of topics and concepts. People, places, corporations, foods, animals, basketball teams, emotions, works of art, and just about anything else can have a Wikidata item.<\/span><\/p>\n<p><span style=\"font-weight: 400\">In the second half of 2021 I worked with the Temple University Library as part of the <\/span><a href=\"https:\/\/cci.drexel.edu\/mrc\/leading\/\"><span style=\"font-weight: 400\">LEADING Fellowship<\/span><\/a><span style=\"font-weight: 400\">. Through a collaboration with the Philadelphia Museum of Art, our project mentors Synatra Smith, Alex Wermer-Colan, and Holly Tomren focused our project on <a href=\"https:\/\/sites.temple.edu\/tudsc\/2021\/12\/15\/designing-wikidata\/\">updating and improving Wikidata\u2019s collection of Black artists<\/a>, and especially those from the Philadelphia area. I was also paired with a second LEADING fellow on this project Rebecca Y. Bayeck, CLIR postdoctoral Fellow in Data Curation at the Schomburg Center for Research in Black Culture. We developed a complicated query that enabled us to quickly collect a great deal of information about local artists. In this tutorial, I&#8217;ll discuss the building blocks of that query.<\/span><\/p>\n<h3><b>Wikidata Basics<\/b><\/h3>\n<p><span style=\"font-weight: 400\">Where Wikipedia has articles, Wikidata has \u201citems.\u201d Like I said above, an item can be anything that a Wikidata editor thinks people might want queryable structured data for. For each Wikidata item, statements can be added. These statements add properties of the item, such as \u201coccupation\u201d, \u201cplace of birth\u201d, \u201crace or ethnicity\u201d, or other potential descriptors of the item. There are also properties for external identifiers, such as the items <\/span><a href=\"http:\/\/viaf.org\/\"><span style=\"font-weight: 400\">Virtual International Authority File<\/span><\/a><span style=\"font-weight: 400\">\u00a0 catalog number. These properties are represented by triples: the item (1) has a property (2) with a given value (3).<\/span><\/p>\n<p><span style=\"font-weight: 400\">Each Wikidata item is assigned a QID, which is a unique identifier that starts with a Q and ends with a number. The numbers are assigned sequentially, and have varying numbers of digits. Items then have a label. If you look at <\/span><a href=\"https:\/\/www.wikidata.org\/wiki\/Q5321733\"><span style=\"font-weight: 400\">E.B. Lewis\u2019s Wikidata item<\/span><\/a><span style=\"font-weight: 400\">, the QID is Q5321733, and the human-readable English label is \u201cE.B. Lewis\u201d.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">Using the QID as the primary identifier is useful for two main reasons. First, it allows for Wikidata items with duplicate labels (such as a band and their self-titled album or two identically named people) to be easily distinguishable, without the sort of parenthetical disambiguation common on Wikipedia. It also makes translation easier; as the whole Wikidata item does not need to be translated, just the label, while property labels can be updated individually.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Properties work similarly: each property has a property ID (PID) that can be used in queries. For many properties, the value also is a Wikidata item. For example, E.B. Lewis (Q5321733) has \u201coccupation (P106)\u201d property with the value \u201cartist (Q483501)\u201d. For other properties, the value can be a date, geographic coordinate, URL, or even an image. This is not an exhaustive list of potential property values. While anyone can create an item about anything, property creation does require a formal proposal and discussion with the Wikidata editor community. My colleague, Dr. Rebecca Y. Bayeck, has released a blog post in tandem with this one that goes deeper into <a href=\"https:\/\/sites.temple.edu\/tudsc\/2021\/12\/15\/editing-wikidata\/\">editing Wikidata<\/a>.<\/span><\/p>\n<h3><b>Basic Queries<\/b><\/h3>\n<p><span style=\"font-weight: 400\">Wikidata queries are built with SPARQL, a query language based on SQL. SPARQL makes it possible to query databases in the Research Data Framework (RDF) format, which are stored in triples. Queries can be typed directly into the <\/span><a href=\"https:\/\/query.wikidata.org\/\"><span style=\"font-weight: 400\">Wikidata Query Service<\/span><\/a><span style=\"font-weight: 400\"> (WDQS), and there is also a SPARQL endpoint to collect data through Python.<\/span><\/p>\n<p><span style=\"font-weight: 400\">The basic syntax for a SPARQL query is simple:<\/span><\/p>\n<pre><span style=\"font-weight: 400\">SELECT ?item ?itemLabel\u00a0<\/span>\r\n<span style=\"font-weight: 400\">WHERE {<\/span>\r\n<span style=\"font-weight: 400\">?item wdt:p# wd:q#<\/span>\r\n<span style=\"font-weight: 400\">SERVICE wikibase:label { bd:serviceParam wikibase:language \"[AUTO_LANGUAGE],en\". }<\/span>\r\n<span style=\"font-weight: 400\">}<\/span>\r\n\r\n<\/pre>\n<p><span style=\"font-weight: 400\">To break this down: the SELECT statement tells the WDQS what variables we want to retrieve. In this case, we\u2019ll retrieve the item, and because Wikidata will automatically return the QID for each item, we\u2019ll also ask it to return the item\u2019s label so our results are human readable.<\/span><\/p>\n<p><span style=\"font-weight: 400\">The WHERE statement is where we put our conditions for what we want wikidata to return. In general, we\u2019ll name a variable, and then say what properties that variable is required to have to be added to our list. If we want Wikidata to generate a list of all artists, the statement would look like this:<\/span><\/p>\n<pre><span style=\"font-weight: 400\">?item wdt:P106 wd:Q483501<\/span><\/pre>\n<p><span style=\"font-weight: 400\">\u201cwdt\u201d indicates a property, with P106 being the \u201coccupation\u201d property, and \u201cwd\u201d indicates we want the value of that property to be a specific Wikidata item, with Q484501 being the item for \u201cartist\u201d. So, we\u2019re telling wikidata that to add an item to our list of items, it needs to have a statement with the occupation property, and that occupation\u2019s value needs to be artist.<\/span><\/p>\n<p><a href=\"https:\/\/w.wiki\/4Prh\"><span style=\"font-weight: 400\">This query<\/span><\/a><span style=\"font-weight: 400\"> returns far too many results and may time out, so we\u2019ll have to narrow it down a bit. Let\u2019s look for artists <\/span><i><span style=\"font-weight: 400\">from Philadelphia<\/span><\/i><span style=\"font-weight: 400\">.\u00a0<\/span><\/p>\n<pre><span style=\"font-weight: 400\">SELECT ?item ?itemLabel\u00a0<\/span>\r\n<span style=\"font-weight: 400\">WHERE {<\/span>\r\n<span style=\"font-weight: 400\">\u00a0\u00a0\u00a0\u00a0?item wdt:P106 wd:Q483501;<\/span>\r\n<span style=\"font-weight: 400\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0wdt:P19 wd:Q1345<\/span>\r\n<span style=\"font-weight: 400\">SERVICE wikibase:label { bd:serviceParam wikibase:language \"[AUTO_LANGUAGE],en\". }<\/span>\r\n<span style=\"font-weight: 400\">}<\/span><\/pre>\n<p><span style=\"font-weight: 400\">If we make our full query look like this, we return a <\/span><a href=\"https:\/\/w.wiki\/4PTn\"><span style=\"font-weight: 400\">much more manageable set of results<\/span><\/a><span style=\"font-weight: 400\">. The semicolon indicates we\u2019re still adding parameters for the item variable, and the second line indicates the parameters we\u2019ve added: the item must have a P19 place of birth statement, which must be Q1345, Philadelphia. We can add more parameters to narrow what artists we want to return, and the basic <\/span><a href=\"https:\/\/w.wiki\/4PTp\"><span style=\"font-weight: 400\">list of Black artists from Philadelphia<\/span><\/a><span style=\"font-weight: 400\"> was the building block of our work in the LEADING fellowship.<\/span><\/p>\n<p><span style=\"font-weight: 400\">The SERVICE statement tells WDQS that when we ask for labels, we want the English ones. No one needs to memorize this line of code, as WDQS\u2019s tools make it very easy to add it automatically.<\/span><\/p>\n<h3><b>Retrieving More Variables<\/b><\/h3>\n<p><span style=\"font-weight: 400\">Let\u2019s say we want to retrieve a few more variables. We don\u2019t just want Black artists from Philadelphia, we want to know where those artists went to college and their gender. We do that by adding more variables to the SELECT statement, and then to the query itself. You can see our new query, and the rest of the full queries in this blog, <\/span><a href=\"https:\/\/w.wiki\/4PVD\"><span style=\"font-weight: 400\">directly on the Wikidata Query Service<\/span><\/a><span style=\"font-weight: 400\">.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Our main focus here is the changes to the SELECT statement, and the corresponding changes to the query. We\u2019ve changed our main variable from \u201c?item\u201d to \u201c?artist\u201d, just to make things a little easier on ourselves. We\u2019ve also added two new variables that will become columns in our results: <\/span><i><span style=\"font-weight: 400\">genderLabel<\/span><\/i><span style=\"font-weight: 400\"> and <\/span><i><span style=\"font-weight: 400\">educationLabel<\/span><\/i><span style=\"font-weight: 400\">.<\/span><\/p>\n<p><span style=\"font-weight: 400\">In the query, we\u2019ve added two lines that tell WDQS what to put in the new columns: for each artist, check for a P21 (which is the sex or gender property), and put the result in a column we\u2019re calling <\/span><i><span style=\"font-weight: 400\">gender<\/span><\/i><span style=\"font-weight: 400\">. Do the same thing for P69, \u201ceducated at\u201d, and put it in a column called <\/span><i><span style=\"font-weight: 400\">education<\/span><\/i><span style=\"font-weight: 400\">.<\/span><\/p>\n<p><span style=\"font-weight: 400\">It is also important that in your SELECT statement you add \u201c<\/span><i><span style=\"font-weight: 400\">Label<\/span><\/i><span style=\"font-weight: 400\">\u201d to the end of your variables. So, if in the query you have the \u201c<\/span><i><span style=\"font-weight: 400\">Gender\u201d <\/span><\/i><span style=\"font-weight: 400\">variable, in the SELECT statement you want the variable to be \u201c<\/span><i><span style=\"font-weight: 400\">GenderLabel\u201d<\/span><\/i><span style=\"font-weight: 400\">. This way, your data will include the human-readable labels, and not the QIDs.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">Let\u2019s make one important change <\/span><a href=\"https:\/\/w.wiki\/4PWd\"><span style=\"font-weight: 400\">to our query<\/span><\/a><span style=\"font-weight: 400\">.<\/span><\/p>\n<p><span style=\"font-weight: 400\">I\u2019ve now wrapped the requests for gender and education in the OPTIONAL tag and brackets. In the previous query, if an artist did not have either a P21 or a P69, they would simply be excluded from the dataset. By wrapping them in the optional tag, any artist that fits the parameters for the artist variable gets a row, and <\/span><i><span style=\"font-weight: 400\">if<\/span><\/i><span style=\"font-weight: 400\"> it has a statement for gender or education, that gets included as well.<\/span><\/p>\n<h3><b>Concatenation<\/b><\/h3>\n<p><span style=\"font-weight: 400\">In the query above, both gender and education can potentially carry multiple statements. Many people were educated at multiple institutions, so both of those institutions are included in the results. Wikidata places these each in their own row, meaning several artists have multiple rows. We can fix this through concatenation.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Concatenation commands go before the WHERE statement. Each concatenation command replaces that variable in the SELECT statement:<\/span><\/p>\n<pre><span style=\"font-weight: 400\">SELECT ?artist ?artistLabel<\/span>\r\n<span style=\"font-weight: 400\">\u00a0\u00a0(group_concat(DISTINCT(?genderLabel);separator=\", \") as ?genders)<\/span>\r\n<span style=\"font-weight: 400\">\u00a0\u00a0(group_concat(DISTINCT(?educationLabel);separator=\", \") as ?educations)<\/span><\/pre>\n<p><span style=\"font-weight: 400\">Here I\u2019ve removed the genderLabel and educationLabel variables and replaced them with two concatenation statements. I\u2019ve asked WDQS to concatenate, I\u2019ve asked it to only provide me distinct values so as to remove duplicates (this may occur when different sources are cited, for example), and I\u2019ve asked it to use a comma followed by a space as a separator. I\u2019ve also given the concatenated column its own name by pluralizing the main variable name.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Most of the WHERE statement is the same, but I do need to make a change to the SERVICE statement. This is due to a bug in WDQS that should be fixed eventually, but is consistent enough that most documentation will tell you to call in all of the labels manually:<\/span><\/p>\n<pre><span style=\"font-weight: 400\">SERVICE wikibase:label { bd:serviceParam wikibase:language \"[AUTO_LANGUAGE],en\".\u00a0<\/span>\r\n<span style=\"font-weight: 400\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0?artist rdfs:label ?artistLabel .<\/span>\r\n<span style=\"font-weight: 400\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0?gender rdfs:label ?genderLabel .<\/span>\r\n<span style=\"font-weight: 400\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0?education rdfs:label ?educationLabel .<\/span>\r\n<span style=\"font-weight: 400\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}<\/span><\/pre>\n<p><span style=\"font-weight: 400\">Finally, at the very end of my query, after the final curly bracket, I need to add a GROUP BY statement. You need to include every variable that is NOT being concatenated in your GROUP BY statement. If you are concatenating 2 out of your 14 variables, there needs to be 12 variables in your GROUP BY statement. Here, it looks like this:<\/span><\/p>\n<pre><span style=\"font-weight: 400\">GROUP BY ?artist ?artistLabel<\/span><\/pre>\n<p><span style=\"font-weight: 400\">Put it all together, <\/span><a href=\"https:\/\/w.wiki\/4PXD\"><span style=\"font-weight: 400\">and you get the full query<\/span><\/a><span style=\"font-weight: 400\">, which is better looked at within the linked Wikidata Query service.<\/span><\/p>\n<p><span style=\"font-weight: 400\">I\u2019ve also added an ORDER BY statement so the data displays in alphabetical order.<\/span><\/p>\n<h3><b>Larger Statements<\/b><\/h3>\n<p><span style=\"font-weight: 400\">Now that we have the basics down, the queries are nearly endlessly extensible. To expand our Philadelphia Black artists dataset, we added a <\/span><a href=\"https:\/\/query.wikidata.org\/#SELECT%0A%20%20%20%20%3Fartist%20%3FartistLabel%20%3FsexGenderLabel%20%3FsexualOrientationLabel%0A%20%20%20%20%28group_concat%28DISTINCT%28%3FoccupationLabel%29%3Bseparator%3D%22%2C%20%22%29%20as%20%3Foccupations%29%0A%20%20%20%20%28group_concat%28DISTINCT%28%3FresidenceLabel%29%3Bseparator%3D%22%2C%20%22%29%20as%20%3Fresidences%29%0A%20%20%20%20%28group_concat%28DISTINCT%28%3FeducationLabel%29%3Bseparator%3D%22%2C%20%22%29%20as%20%3Feducations%29%0A%20%20%20%20%28group_concat%28DISTINCT%28%3FemployerLabel%29%3Bseparator%3D%22%2C%20%22%29%20as%20%3Femployers%29%0A%20%20%20%20%28group_concat%28DISTINCT%28%3FbirthPlaceLabel%29%3Bseparator%3D%22%2C%20%22%29%20as%20%3FbirthPlaces%29%0A%20%20%20%20%28group_concat%28DISTINCT%28%3FbirthPlaceGeoLabel%29%3Bseparator%3D%22%2C%20%22%29%20as%20%3FbirthPlacesGeo%29%0A%20%20%20%20%28group_concat%28DISTINCT%28%3FdeathPlaceLabel%29%3Bseparator%3D%22%2C%20%22%29%20as%20%3FdeathPlaces%29%0A%20%20%20%20%28group_concat%28DISTINCT%28%3FdeathPlaceGeoLabel%29%3Bseparator%3D%22%2C%20%22%29%20as%20%3FdeathPlacesGeo%29%0A%20%20%20%20%28group_concat%28DISTINCT%28%3FinfluenceLabel%29%3Bseparator%3D%22%2C%20%22%29%20as%20%3Finfluences%29%0A%20%20%20%20%28group_concat%28DISTINCT%28%3FworksInCollectionLabel%29%3Bseparator%3D%22%2C%20%22%29%20as%20%3Fmuseums%29%0A%20%20%20%20%0AWHERE%0A%7B%0A%20%20%20%20%3Fartist%20wdt%3AP5008%20wd%3AQ94124522.%0A%20%20%20%20%3Fartist%20wdt%3AP106%20%3Foccupation.%0A%20%20%20%20OPTIONAL%20%7B%20%3Fartist%20wdt%3AP21%20%3FsexGender.%20%7D%0A%20%20%20%20OPTIONAL%20%7B%20%3Fartist%20wdt%3AP19%20%3FbirthPlace.%20%7D%0A%20%20%20%20OPTIONAL%20%7B%20%3Fartist%20wdt%3AP20%20%3FdeathPlace.%20%7D%0A%20%20%20%20OPTIONAL%20%7B%20%3Fartist%20wdt%3AP19%20%3FbirthPlace.%20%3FbirthPlace%20wdt%3AP625%20%3FbirthPlaceGeo%7D%0A%20%20%20%20OPTIONAL%20%7B%20%3Fartist%20wdt%3AP20%20%3FdeathPlace.%20%3FdeathPlace%20wdt%3AP625%20%3FdeathPlaceGeo%7D%0A%20%20%20%20OPTIONAL%20%7B%20%3Fartist%20wdt%3AP551%20%3Fresidence.%20%7D%0A%20%20%20%20OPTIONAL%20%7B%20%3Fartist%20wdt%3AP69%20%3Feducation.%20%7D%0A%20%20%20%20OPTIONAL%20%7B%20%3Fartist%20wdt%3AP108%20%3Femployer.%20%7D%0A%20%20%20%20OPTIONAL%20%7B%20%3Fartist%20wdt%3AP91%20%3FsexualOrientation.%20%7D%0A%20%20%20%20OPTIONAL%20%7B%20%3Fartist%20wdt%3AP737%20%3Finfluence.%20%7D%0A%20%20%20%20OPTIONAL%20%7B%20%3Fartist%20wdt%3AP6379%20%3FworksInCollection.%20%7D%0A%20%20%20%20SERVICE%20wikibase%3Alabel%20%7B%20%0A%20%20%20%20bd%3AserviceParam%20wikibase%3Alanguage%20%22en%22.%20%0A%20%20%20%20%3Fartist%20rdfs%3Alabel%20%3FartistLabel%20.%20%0A%20%20%20%20%3Foccupation%20rdfs%3Alabel%20%3FoccupationLabel%20.%0A%20%20%20%20%3FsexGender%20rdfs%3Alabel%20%3FsexGenderLabel%20.%0A%20%20%20%20%3FbirthPlace%20rdfs%3Alabel%20%3FbirthPlaceLabel%20.%0A%20%20%20%20%3FdeathPlace%20rdfs%3Alabel%20%3FdeathPlaceLabel%20.%0A%20%20%20%20%3Fresidence%20rdfs%3Alabel%20%3FresidenceLabel%20.%0A%20%20%20%20%3Feducation%20rdfs%3Alabel%20%3FeducationLabel%20.%0A%20%20%20%20%3Femployer%20rdfs%3Alabel%20%3FemployerLabel%20.%0A%20%20%20%20%3FsexualOrientation%20rdfs%3Alabel%20%3FsexualOrientationLabel%20.%0A%20%20%20%20%3Finfluence%20rdfs%3Alabel%20%3FinfluenceLabel%20.%0A%20%20%20%20%3FbirthPlaceGeo%20rdfs%3Alabel%20%3FbirthPlaceGeoLabel%20.%0A%20%20%20%20%3FdeathPlaceGeo%20rdfs%3Alabel%20%3FdeathPlaceGeoLabel%20.%0A%20%20%20%20%3FworksInCollection%20rdfs%3Alabel%20%3FworksInCollectionLabel%20.%0A%20%20%7D%0A%7D%0AGROUP%20BY%20%3Fartist%20%3FartistLabel%20%3FsexGenderLabel%20%3FsexualOrientationLabel%0AORDER%20BY%20%3FartistLabel%0A\"><span style=\"font-weight: 400\">great number of variables<\/span><\/a><span style=\"font-weight: 400\">.<\/span><\/p>\n<p><span style=\"font-weight: 400\">In this query we\u2019re able to gather artist names, birthplaces, residences, sexual orientation, employers, and some geographic coordinates using the same basic formula we used in the rest of our queries. I have cheated here: in the very first part of the WHERE statement we restrict results to a preselected list of artists. This prevents the system from timing out, but still gathers the dataset we\u2019re looking for.<\/span><\/p>\n<p><span style=\"font-weight: 400\">You can use these queries as the building blocks for your own queries. While the query just above might be complicated, try going back to the <\/span><a href=\"https:\/\/w.wiki\/4PXD\"><span style=\"font-weight: 400\">basic concatenated data,<\/span><\/a><span style=\"font-weight: 400\"> and replacing the QID for artists with a different occupation you\u2019re interested in. Replace the city with one closer to you, and add some of the options in this final query to gather more data. There are many other SPARQL tricks, but these basics will hopefully help you understand how you can start from scratch on your own.\u00a0<\/span><\/p>\n<h3><b>Next Steps<\/b><\/h3>\n<p><span style=\"font-weight: 400\">Developing the queries above required a great deal of trial and error, not only in the code, but in conceptualizing what exactly it was we wanted represented in our dataset. I would run the query, and find that while the code worked it lacked some piece of information that might be useful in drawing connections between these artists. In a forthcoming blog post, me and my colleague Rebecca will discuss how we used these results, to create visualizations using Python.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>By jay winkler<\/p>\n","protected":false},"author":24646,"featured_media":8089,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[289,286,405,86],"tags":[259,321,434,6],"class_list":["post-8072","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-art-history","category-cultural-studies","category-digital-humanities","category-services","tag-cultural-heritage","tag-digital-scholarship","tag-linked-open-data","tag-top-news"],"_links":{"self":[{"href":"https:\/\/sites.temple.edu\/tudsc\/wp-json\/wp\/v2\/posts\/8072","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sites.temple.edu\/tudsc\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sites.temple.edu\/tudsc\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sites.temple.edu\/tudsc\/wp-json\/wp\/v2\/users\/24646"}],"replies":[{"embeddable":true,"href":"https:\/\/sites.temple.edu\/tudsc\/wp-json\/wp\/v2\/comments?post=8072"}],"version-history":[{"count":0,"href":"https:\/\/sites.temple.edu\/tudsc\/wp-json\/wp\/v2\/posts\/8072\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sites.temple.edu\/tudsc\/wp-json\/wp\/v2\/media\/8089"}],"wp:attachment":[{"href":"https:\/\/sites.temple.edu\/tudsc\/wp-json\/wp\/v2\/media?parent=8072"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sites.temple.edu\/tudsc\/wp-json\/wp\/v2\/categories?post=8072"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sites.temple.edu\/tudsc\/wp-json\/wp\/v2\/tags?post=8072"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}