遇见数据集

MSR-2026-Mining-Challenge-Proposal

收藏
Zenodo2025-09-01 更新2026-05-26 收录
官方服务:

资源简介:

This repository provides the dataset used for the MSR-Mining Challenge Proposal. This repository consists of 59,278 Ecore Files that were mined from GitHub. In total, we collected 86,827 committed Ecore versions from 3537 GitHub repositories. These files can be found in metamodels.zip. The files are stored in the hierarchy found in the GitHub repository, where the _number at the end of the filename describes the version number, e.g., example_1.ecore was the first commit of this file. Furthermore, we also provide a database that stores the metamodels and their versions in a more organised manner. Furthermore, it also contains additional information about the version commits. Below is an excerpt of the datastructure: Table metamodels: Contains all the found metamodel. It has the following rows: Column Data Type Descripton file_name text the name of the file file_path text the path of the file in the repository file_sha text the sha of the file file_html_url text the link to the file repository_id bigint the identifier of the repository where the metamodel is stored repository_name text the name of the repository reposiotry_full_name text reposiotry_html_url text the link to the repository owner_name text the name of the owner owner_id bigint the id of the owner The primariy keys are repository_id, file_html_url Table versions: contains all the commits of the previously found metamodels. It consists of the following rows: Column Data Type Descripton file_html_url text the link to the file commits_html_url text the link to the commit repository_id bigint the repository id commit_author_name text the commit author name commit_author_email text the commit author email commit_author_date timestamp the commit date commit_committer_name text the commiter name commit_committer_email text the commiter email commit_committer_date timestamp the commiter date commit_message text the commit message content text the content of the metamodel size bigint the size in number of characters nrclasses bigint the number of classifiers found in the metamodel nrattributes bigint the number of attributes found in the metamodel nrreferences bigint the number of references found in the metamodel nrcontainment bigint the number of containments found in the metamodel nropposite bigint the number of opposites found in the metamodel loc bigint the number of code line found in the metamodel The primary key is : commits_html_url and there is a reference to models via FOREIGN KEY (repository_id, file_html_url) REFERENCES metamodels(repository_id, file_html_url) ON DELETE CASCADE This repository consists of the following components: restore.sql /3382.dat /3381.dat / toc.dat: Contains the files to restore the database with the stored metamodels. metamodels.zip: contains the metamodels and their versions which we mined from git EMFAnalyzer.zip: contains the simiple tool where we did a primilary analysis of the metamodels. datastructure.txt: contains the datastructure of the tables metamodels.tar: A docker container that will setup a database The mining was performed on a Windows 11 Server, where we stored the found entries on a Postgres 17 Database. To restore the database, just run the SQL script. Note: The following two lines of code have to be adapted: COPY public.metamodels (file_name, file_path, file_sha, file_html_url, repository_id, repository_name, repository_full_name, repository_html_url, owner_name, owner_id) FROM '$$PATH$$/3382.dat'; and COPY public.versions (file_html_url, commits_html_url, repository_id, commit_author_name, commit_author_email, commit_author_date, commit_committer_name, commit_committer_email, commit_committer_date, commit_message, sha, author_login, author_id, author_html_url, committer_login, committer_id, committer_html_url, content, size, nrclasses, nrattributes, nrreferences, nrcontainment, nropposite, loc) FROM '$$PATH$$/3381.dat'; Here you have to change the $$PATH$$ to the location where both files are stored. Furthermore, if the files are located client-side, you have to change COPY to \COPY so that the local file is used when connecting to the server. \COPY public.versions (file_html_url, commits_html_url, repository_id, commit_author_name, commit_author_email, commit_author_date, commit_committer_name, commit_committer_email, commit_committer_date, commit_message, sha, author_login, author_id, author_html_url, committer_login, committer_id, committer_html_url, content, size, nrclasses, nrattributes, nrreferences, nrcontainment, nropposite, loc) FROM '$$PATH$$/3381.dat'; On Windows, you can set up the database by calling: .\psql.exe -U postgres -d template1 -f 'restore.sql' -U is the user who connects to the database -d is just a placeholder database since the SQL script creates the database with the content -f is the filepath to the SQL script Afterwards, you can connect to the database by calling: .\psql.exe -U postgres -d metamodels -U is the user who connects to the database -d is the database to connect to. The script creates a database called metamodels Otherwise you can setup the database via the provided docker container file: First load the image by calling : docker image load -i ./metamodels.tar Next run a container for the loaded image : sudo docker run --name <containerName> jkumining:psql where <containerName> is the name of the container you want it to give with docker ps you can check if the the conatiner with the name is running. It should show a container like this CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESd542f507d10e jkumining:psql "docker-entrypoint.s…" 8 seconds ago Up 8 seconds 5432/tcp <containerName> <containerName> is the name given previously Finally connect to the database via : sudo docker exec -it <containerName> psql -U postgres And check if the data is correctly loaded: select count(*) from versions; count ------- 86827(1 row)

提供机构:
Zenodo
创建时间:
2025-08-20
二维码
社区交流群
二维码
科研交流群
商业服务