Skip to content

Commit ecf6777

Browse files
authored
Merge branch 'master' into update_recent_posts
2 parents 24b197b + d018c6e commit ecf6777

File tree

64 files changed

+620
-154
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

64 files changed

+620
-154
lines changed

content/blog/authors/aldenpage/contents.lr

+2
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,7 @@ username: aldenpage
22
---
33
name: Alden Page
44
---
5+
md5_hashed_email: 32853a2ab283e0093bf088d8af5d3cdc
6+
---
57
about:
68
[Alden](https://creativecommons.org/author/aldencreativecommons-org/) is Backend Software Engineer at Creative Commons. He is `@aldenpage` on the CC Slack.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
username: annatuma
2+
---
3+
name: Anna Tumadóttir
4+
---
5+
md5_hashed_email: c6b98be141f57ce877a7ae10595b0ae0
6+
---
7+
about:
8+
[Anna](https://creativecommons.org/author/annacreativecommons-org/) is Director of Product at Creative Commons. She's `@Anna` on the CC Slack.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
name: collaboration
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
name: gsod-2020
+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
name: gsod
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
name: outreachy-2019-20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
name: outreachy-2020

content/blog/entries/2020-03-05-involucrate-gsoc-outreachy-es/contents.lr

+2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@ title: Involúcrate con nuestra comunidad de código abierto a través del Goog
22
---
33
categories:
44
gsoc
5+
gsoc-2020
56
outreachy
7+
outreachy-2020
68
---
79
author: hugosolar
810
---

content/blog/entries/2020-03-05-participe-gsoc/contents.lr

+2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@ title: Participe do Google Summer of Code / Outreachy
22
---
33
categories:
44
gsoc
5+
gsoc-2020
56
outreachy
7+
outreachy-2020
68
---
79
author: brenoferreira
810
---
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
title: X5GON Using CC Catalog API for Image Results
2+
---
3+
categories:
4+
community
5+
cc-catalog
6+
cc-search
7+
announcements
8+
collaboration
9+
---
10+
author: annatuma
11+
---
12+
pub_date: 2020-08-24
13+
---
14+
body:
15+
A few months ago, the Open Education team at Creative Commons made an introduction between the folks working on X5GON and CC Search.
16+
17+
Throughout a few conversations, we quickly discovered that there are many parallels to how we're approaching our work, and some important differences that would allow each of us to benefit from cooperation.
18+
19+
[X5GON](https://www.x5gon.org/) is building an AI-driven platform, focused on delivery of open education resources (OER). At its core, it is building a catalog of OER, upon which other [services](https://www.x5gon.org/platforms/services/) are based, such as analytics for personalized recommendations, and a discovery engine. By aggregating relevant content, curating it with the use of artificial intelligence and machine learning, and personalizing the experience to each learner, they're making OER more accessible and relevant.
20+
21+
CC Search is not yet ready to ingest content types beyond images, but when we are able to do so, we plan to integrate via API with X5GON in order to serve OER that is made available in formats we will support in the future, starting with audio.
22+
23+
The [X5GON Discovery search engine](https://discovery.x5gon.org/) allows users to find OER in video, audio, and text formats - and now, with the integration of results powered by the CC Catalog API, which also powers CC Search, users can also find openly licensed images for relevant educational queries. This is a great resource for educators and learners from all over the world.
24+
25+
Try it for yourself, or look at these results for making [geometry](https://discovery.x5gon.org/search?q=geometry&type=Image) visual and fun!
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
title: CC Catalog: wrapping up GSoC20
2+
---
3+
categories:
4+
5+
cc-catalog
6+
gsoc
7+
gsoc-2020
8+
---
9+
author: srinidhi
10+
---
11+
series: gsoc-2020-cccatalog
12+
---
13+
pub_date: 2020-08-25
14+
---
15+
body:
16+
With the summer of code coming to an end, this blog post summarises the work done during the last three months. The project I have been working on is to add more provider API scripts to the CC Catalog. The CC Catalog project is responsible for collecting CC licensed images hosted across the web.
17+
18+
The internship journey has been great , and I was glad to get the opportunity to understand more about the working of the data pipeline. My work during the internship mainly involved researching new API providers and checking if they meet the necessary conditions, then we decided on a strategy to crawl the API. The strategy varies according to different APIs: some can be partitioned based on date, others have to be paginated . Script is written for the API according to the strategy.
19+
During the later phase of the internship, I had worked on the reingestion strategy for europeana and a script to merge Common Crawl tags and metadata to the corresponding image in the image table.
20+
21+
Provider API implemented :
22+
- Science Museum : Science Museum collection has around 60,000 images and was initially crawled through Common Crawl and shifted to API based crawl.
23+
- Issue: [Science Museum ticket][science_museum_issue]
24+
- Related PRs: [Science Museum script][science_museum_script], [Science Museum workflow][science_museum_workflow]
25+
26+
27+
- Statens Museum : Statens Museum for Kunst is Denmark’s leading museum for artwork . This is a new integration and 39115 images have been collected.
28+
- Issue: [Statens Museum ticket][statens_museum_issue]
29+
- Related PRs: [Statens Museum implementation][statens_museum_implementation]
30+
31+
32+
- Museums Victoria : It was initially ingested from Common Crawl later shifted to API based crawl. It has around 140,000 images.
33+
- Issue: [Museums Victoria ticket][museums_victoria_issue]
34+
- Related PRs: [Museums Victoria implementation][museums_victoria_implementation]
35+
36+
37+
- NYPL : New York Public Library is a new integration , as of now it has around 1296 images.
38+
- Issue: [NYPL ticket][nypl_issue]
39+
- Related PRs: [NYPL implementation][nypl_implementation]
40+
41+
42+
- Brooklyn Museum : This was an existing integration , changes were made to follow the new ```ImageStore``` and ```DelayedRequestor``` class , it has 61503 images.
43+
- Issue: [Brooklyn Museum ticket][brooklyn_museum_issue]
44+
- Related PRs: [Brooklyn Museum implementation][brooklyn_museum_implementation]
45+
46+
47+
Iconfinder is a provider of icons that could not be integrated as the current strategy of ingestion is very slow and we need a better strategy.
48+
- Issue : [Iconfinder ticket][iconfinder_issue]
49+
50+
[science_museum_issue]: https://github.com/creativecommons/cccatalog/issues/302
51+
[science_museum_script]: https://github.com/creativecommons/cccatalog/pull/400
52+
[science_museum_workflow]: https://github.com/creativecommons/cccatalog/pull/411
53+
[statens_museum_issue]: https://github.com/creativecommons/cccatalog/issues/393
54+
[statens_museum_implementation]: https://github.com/creativecommons/cccatalog/pull/428
55+
[museums_victoria_issue]: https://github.com/creativecommons/cccatalog/issues/291
56+
[museums_victoria_implementation]: https://github.com/creativecommons/cccatalog/pull/447
57+
[nypl_issue]: https://github.com/creativecommons/cccatalog/issues/147
58+
[nypl_implementation]: https://github.com/creativecommons/cccatalog/pull/462
59+
[brooklyn_museum_issue]: https://github.com/creativecommons/cccatalog/issues/348
60+
[brooklyn_museum_implementation]: https://github.com/creativecommons/cccatalog/pull/355
61+
[iconfinder_issue]:https://github.com/creativecommons/cccatalog/issues/396
62+
63+
64+
## Europeana reingestion strategy
65+
Data collected from europeana was collected on a daily basis and there was a need to refresh it. The idea is that new data should be refreshed more frequently and as the data gets old, refreshing should become less frequent. While developing the strategy the API key limit and maximum collection expected is to be kept in mind. Considering these factors, a workflow was set up such that each day it crawls 59 days of data.
66+
The 59 days were split up into layers. The DAG crawls daily up to 1 week old data then it crawls monthly for data more than 1 week old and less than a year old data, anything older than a year is crawled every 3 months.
67+
- Issue: [Europeana reingestion ticket][europeana_reingestion_issue]
68+
- Related PR: [Europeana reingestion strategy][europeana_reingestion_strategy]
69+
70+
More details regarding the math of reingestion: [Data reingestion][data_reingestion_blog]
71+
72+
<div style="text-align:center;">
73+
<img src="dag_image_1.png" width="1000px"/>
74+
<img src="dag_image_2.png" width="1000px"/>
75+
<img src="dag_image_3.png" width="1000px"/>
76+
<p>Europeana reingestion workflow</p>
77+
</div>
78+
79+
[europeana_reingestion_issue]: https://github.com/creativecommons/cccatalog/issues/412
80+
[europeana_reingestion_strategy]: https://github.com/creativecommons/cccatalog/pull/473
81+
[data_reingestion_blog]: https://opensource.creativecommons.org/blog/entries/date-partitioned-data-reingestion/
82+
83+
84+
## Merging Common Crawl tags
85+
When a provider is shifted from Common Crawl to API based crawl, the new data from API doesn’t have tags and metadata that were generated using clarifai and hence there is need to associate the new data with the tags corresponding to that image from the Common Crawl data. A direct url match is not possible as the Common Crawl urls and API image url are different, so we try to match it on the number or identifier that is associated with the url.
86+
87+
Currently the merging logic is applied to Science Museum, Museums Victoria and Met Museum .
88+
89+
In Science Museum, API url in image table is like https://coimages.sciencemuseumgroup.org.uk/images/240/862/large_BAB_S_1_02_0017.jpg and CC url is like https://s3-eu-west-1.amazonaws.com/smgco-images/images/369/541/medium_SMG00096855.jpg . So the idea is to reduce the url to the last identifier like number , so after the modification of the url by modify_urls function it looks like ```gpj.1700_20_1_S_BAB_``` (API url) and ```gpj.55869000GMS_``` (CC url) .
90+
Similar logic has been applied to met museum and museum victoria.
91+
- Issue: https://github.com/creativecommons/cccatalog/issues/468
92+
- Related PR: https://github.com/creativecommons/cccatalog/pull/478
93+
94+
95+
## Acknowledgement
96+
I would like to thank my mentors Brent and Anna for their guidance throughout the internship.
97+
98+
99+
100+
101+
Loading
Loading
Loading

content/blog/entries/cc-platform-toolkit-revamp-2/contents.lr

+1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ categories:
44
community
55
platform-toolkit
66
outreachy
7+
outreachy-2019-20
78
---
89
author: apdsrocha
910
---

content/blog/entries/cc-platform-toolkit-revamp-3/contents.lr

+1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ categories:
44
community
55
platform-toolkit
66
outreachy
7+
outreachy-2019-20
78
---
89
author: apdsrocha
910
---

content/blog/entries/cc-platform-toolkit-revamp-4/contents.lr

+1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ categories:
44
community
55
platform-toolkit
66
outreachy
7+
outreachy-2019-20
78
---
89
author: apdsrocha
910
---

content/blog/entries/cc-platform-toolkit-revamp/contents.lr

+1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ categories:
44
community
55
platform-toolkit
66
outreachy
7+
outreachy-2019-20
78
---
89
author: apdsrocha
910
---

content/blog/entries/cc-vocabulary-my-first-four-weeks/contents.lr

+1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ categories:
55
cc-vocabulary
66
product
77
outreachy
8+
outreachy-2019-20
89
---
910
author: conye
1011
---

content/blog/entries/cc-vocabulary-week5-8/contents.lr

+1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ categories:
55
cc-vocabulary
66
product
77
outreachy
8+
outreachy-2019-20
89
---
910
author: conye
1011
---

content/blog/entries/cc-vocabulary-week9-13/contents.lr

+1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ categories:
55
cc-vocabulary
66
product
77
outreachy
8+
outreachy-2019-20
89
---
910
author: conye
1011
---

content/blog/entries/crawling-500-million/contents.lr

+1-1
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ We know we're not going to be able to crawl 500 million images with one virtual
4545

4646
The worker processes do the actual analysis of the images, which essentially entails downloading the image, extracting interesting properties, and sticking the resulting metadata back into a Kafka topic for later downstream processing. The worker will also have to include some instrumentation for conforming to rate limits and error reporting.
4747

48-
We also know that we will need to share some information about crawl progress between worker processes, such as whether we've exceeded our proscribed rate limit for a website, the number of times we've seen a status code in the last minute, how many images we've processed so far, and so on. Since we're only interested in sharing application state and aggregate statistics, a lightweight key/value store like Redis seems like a good fit.
48+
We also know that we will need to share some information about crawl progress between worker processes, such as whether we've exceeded our prescribed rate limit for a website, the number of times we've seen a status code in the last minute, how many images we've processed so far, and so on. Since we're only interested in sharing application state and aggregate statistics, a lightweight key/value store like Redis seems like a good fit.
4949

5050
Finally, we need a supervising process that centrally controls the crawl. This key governing process will be responsible for making sure our crawler workers are behaving properly by moderating crawl rates for each source, taking action in the face of errors, and reporting statistics to the operators of the crawler. We'll call this process the crawl monitor.
5151

content/blog/entries/improving-cc-license-chooser-coding/contents.lr

+1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ author: obulat
55
categories:
66

77
outreachy
8+
outreachy-2019-20
89
cc-chooser
910
---
1011
series: outreachy-dec-2019-chooser

content/blog/entries/improving-cc-license-chooser-outcomes/contents.lr

+1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ author: obulat
55
categories:
66

77
outreachy
8+
outreachy-2019-20
89
cc-chooser
910
---
1011
series: outreachy-dec-2019-chooser

content/blog/entries/improving-cc-license-chooser-weeks-1-2-design/contents.lr

+1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ author: obulat
55
categories:
66

77
outreachy
8+
outreachy-2019-20
89
cc-chooser
910
---
1011
series: outreachy-dec-2019-chooser

content/blog/entries/integration-vocabulary-ccos/contents.lr

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ title: Integration of Vocabulary with CCOS.
22
---
33
categories:
44
outreachy
5+
outreachy-2020
56
tech
67
open-source
78
---

content/blog/entries/legal-database-a-new-beginning/contents.lr

+1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ categories:
44
cc-legal-database
55
product
66
outreachy
7+
outreachy-2020
78
---
89
author: krysal
910
---

content/blog/entries/legal-database-coding-mid-term/contents.lr

+1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ categories:
44
cc-legal-database
55
product
66
outreachy
7+
outreachy-2020
78
---
89
author: krysal
910
---

content/blog/entries/legal-database-design/contents.lr

+1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ categories:
44
cc-legal-database
55
product
66
outreachy
7+
outreachy-2020
78
---
89
author: krysal
910
---

content/blog/entries/legal-database-features/contents.lr

+1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ categories:
44
cc-legal-database
55
product
66
outreachy
7+
outreachy-2020
78
---
89
author: krysal
910
---

content/blog/entries/linked-commons-autocomplete-feature/contents.lr

+1-3
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ The following blog intends to explain the very recent feature integrated to the
3232
## Motivation
3333
One of the newest features integrated last month into Linked Commons is Filtering by node name. Here a user can search for his/her favourite node and explore all its neighbours. Since the list is very big, it was self-evident for us to have a text box (and not a drop-down) where the user is supposed to type the node name.
3434

35-
Some of the reasons why to have a text box or filtering by node option.
35+
Some of the reasons why to have "autocomplete feature" in the filtering by node name -
3636
- Some of the node names are very uncommon and lengthy. There is a high probability of misspelling it.
3737
- Submitting the form and getting a response of “Node doesn’t exist” isn’t a very good user flow, and we want to minimise such incidents.
3838

@@ -73,8 +73,6 @@ Here are some aggregated result statistics.
7373
| Max Requests/s |** 214 **|
7474
| Failures/s |** 0 **|
7575

76-
Since SQLlite has a serverless design, disk io usually has a significant impact on the performance. The above results were executed on a server with HDD storage. Linked Commons server is equipped with faster disk io. It will certainly improve the performance but will be countered by the network latency and other factors like the number of nodes in the dB. So the above results to some degree resemble the actual performance.
77-
7876

7977
## Next steps
8078
In the next blog, we will be covering the long awaited data update and the new architecture.

0 commit comments

Comments
 (0)