mirror of
https://github.com/gsi-upm/sitc
synced 2025-12-15 09:38:16 +00:00
Minor changes LOD 01 and 03
This commit is contained in:
@@ -790,11 +790,12 @@
|
||||
"\n",
|
||||
"SELECT *\n",
|
||||
"WHERE { ... }\n",
|
||||
"ORDER BY <variable> <variable> ... DESC(<variable>) ASC(<variable>)\n",
|
||||
"ORDER BY <variable> <variable> ... \n",
|
||||
"... other statements like LIMIT ...\n",
|
||||
"```\n",
|
||||
"\n",
|
||||
"The results can be sorted in ascending or descending order, and using several variables."
|
||||
"The results can be sorted in ascending or descending order, and using several variables.\n",
|
||||
"By default the results are ordered in ascending order, but you can indicate the order using an optional modifier (`ASC(<variable>)`, or `DESC(<variable>)`). \n"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -880,7 +881,7 @@
|
||||
" rdfs:label \"Ringo Starr\" .\n",
|
||||
"```\n",
|
||||
"\n",
|
||||
"Using this structure, and the SPARQL statements you already know, to get the **names** of all musicians that collaborated in at least one song.\n"
|
||||
"Using this structure, and the SPARQL statements you already know, get the **names** of all musicians that collaborated in at least one song.\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -954,13 +955,13 @@
|
||||
"\n",
|
||||
"Results can be aggregated using different functions.\n",
|
||||
"One of the simplest functions is `COUNT`.\n",
|
||||
"The syntax for COUNT is:\n",
|
||||
"The syntax for `COUNT` is:\n",
|
||||
" \n",
|
||||
"```sparql\n",
|
||||
"SELECT (COUNT(?variable) as ?count_name)\n",
|
||||
"```\n",
|
||||
"\n",
|
||||
"Use `COUNT` to get the number of songs in which Ringo collaborated."
|
||||
"Use `COUNT` to get the number of songs in which Ringo collaborated. Your query should return a column named `number`."
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -1143,7 +1144,9 @@
|
||||
"Now, use the same principle to get the count of **different** instruments in each song.\n",
|
||||
"Some songs have several musicians playing the same instrument, but we only care about *different* instruments in each song.\n",
|
||||
"\n",
|
||||
"Use `?number` for the count."
|
||||
"Use `?song` for the song and `?number` for the count.\n",
|
||||
"\n",
|
||||
"Take into consideration that instruments are entities of type `i:Instrument`."
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -1153,7 +1156,7 @@
|
||||
"deletable": false,
|
||||
"nbgrader": {
|
||||
"cell_type": "code",
|
||||
"checksum": "2d0633303eedd0655e9b64bb00317dba",
|
||||
"checksum": "3139d9b7e620266946ffe1ae0cf67581",
|
||||
"grade": false,
|
||||
"grade_id": "cell-ee208c762d00da9c",
|
||||
"locked": false,
|
||||
@@ -1173,6 +1176,8 @@
|
||||
" [] a s:Song ;\n",
|
||||
" rdfs:label ?song ;\n",
|
||||
" ?instrument ?musician .\n",
|
||||
" \n",
|
||||
"?instrument a s:Instrument .\n",
|
||||
"}\n",
|
||||
"# YOUR ANSWER HERE\n",
|
||||
"ORDER BY DESC(?number)"
|
||||
@@ -1186,7 +1191,7 @@
|
||||
"editable": false,
|
||||
"nbgrader": {
|
||||
"cell_type": "code",
|
||||
"checksum": "301aa479241fa02534ee047cf7577eee",
|
||||
"checksum": "5abf6eb7a67ebc9f7612b876105c1960",
|
||||
"grade": true,
|
||||
"grade_id": "cell-ddeec32b8ac3d894",
|
||||
"locked": true,
|
||||
@@ -1198,7 +1203,7 @@
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"s = solution()\n",
|
||||
"assert s['columns']['number'][0] == '27'"
|
||||
"assert s['columns']['number'][0] == '25'"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -1243,10 +1248,10 @@
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"However, there are some songs that do not have a vocalist (at least, in the dataset).\n",
|
||||
"Those songs will not appear in the list above, because we they do not match part of the `WHERE` clause.\n",
|
||||
"Those songs will not appear in the list above, because they do not match part of the `WHERE` clause.\n",
|
||||
"\n",
|
||||
"In these cases, we can specify optional values in a query using the `OPTIONAL` keyword.\n",
|
||||
"When a set of clauses are inside an OPTIONAL group, the SPARQL endpoint will try to use them in the query.\n",
|
||||
"When a set of clauses are inside an `OPTIONAL` group, the SPARQL endpoint will try to use them in the query.\n",
|
||||
"If there are no results for that part of the query, the variables it specifies will not be bound (i.e. they will be empty).\n",
|
||||
"\n",
|
||||
"To exemplify this, we can use a property that **does not exist in the dataset**:"
|
||||
@@ -1504,7 +1509,9 @@
|
||||
"source": [
|
||||
"Now, count how many instruments each musician have played in a song.\n",
|
||||
"\n",
|
||||
"**Do not count lead (`i:vocals`) or backing vocals (`i:backingvocals`) as instruments**."
|
||||
"**Do not count lead (`i:vocals`) or backing vocals (`i:backingvocals`) as instruments**.\n",
|
||||
"\n",
|
||||
"Use `?musician` for the musician and `?number` for the count."
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -1770,7 +1777,9 @@
|
||||
"\n",
|
||||
"Using `GROUP_CONCAT`, get a list of the instruments that each musician could play.\n",
|
||||
"\n",
|
||||
"You can consult how to use GROUP_CONCAT [here](https://www.w3.org/TR/sparql11-query/)."
|
||||
"You can consult how to use GROUP_CONCAT [here](https://www.w3.org/TR/sparql11-query/).\n",
|
||||
"\n",
|
||||
"Use `?musician` for the musician and `?instruments` for the list of instruments."
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -1815,7 +1824,9 @@
|
||||
"\n",
|
||||
"You can check if a string or URI matches a regular expression with `regex(?variable, \"<regex>\", \"i\")`.\n",
|
||||
"\n",
|
||||
"The documentation for regular expressions in SPARQL is [here](https://www.w3.org/TR/rdf-sparql-query/)."
|
||||
"The documentation for regular expressions in SPARQL is [here](https://www.w3.org/TR/rdf-sparql-query/).\n",
|
||||
"\n",
|
||||
"Use `?instrument` for the instrument and `?ins` for the url of the type."
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -1873,7 +1884,7 @@
|
||||
],
|
||||
"metadata": {
|
||||
"kernelspec": {
|
||||
"display_name": "Python 3",
|
||||
"display_name": "Python 3 (ipykernel)",
|
||||
"language": "python",
|
||||
"name": "python3"
|
||||
},
|
||||
@@ -1887,7 +1898,20 @@
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.8.1"
|
||||
"version": "3.8.10"
|
||||
},
|
||||
"toc": {
|
||||
"base_numbering": 1,
|
||||
"nav_menu": {},
|
||||
"number_sections": true,
|
||||
"sideBar": true,
|
||||
"skip_h1_title": false,
|
||||
"title_cell": "Table of Contents",
|
||||
"title_sidebar": "Contents",
|
||||
"toc_cell": false,
|
||||
"toc_position": {},
|
||||
"toc_section_display": true,
|
||||
"toc_window_display": false
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
|
||||
Reference in New Issue
Block a user