Comments (5)
Sorry, totally forgot to respond to this. I think stargazer_count is something we can leave out: There's no schema.org property for it, and it does not provide much value I think. And is not part of the imaging plaza properties either.
For a person, the github username is a bit spicier. A github username is unique, but if that user deletes their account, the username can be taken again after 90 days by someone else. This could mean that if your data is referencing some username, after 90 days that triple can point towards an entirely different entity, which is not a good property of an "identifier". I see two options:
- Accept the risk of lack of persistence on :identifier since deleting a github account is probably quite a rare occurrence (software engineering is still too young of a profession for the people doing it to die or retire often, so we are pushing this problem forward to like 2050, when we all the 1970's born people start dying en masse)
- use a custom property (although the persistence problem remains, but can be a bit reduced by adding the limitation of the property in the definition ("This property identifies a gitHub user at the time of extraction and is informative. Github usernames are not persistent" or something like that))
- don't use the githubUsername at all
All three are very valid options imo.
from gimie.
@rmfranken Do you have any other suggestions ? (especially regarding the 2 ❓)
from gimie.
Thanks @rmfranken I dropped stargazer_count.
The GitHub username is still useful, as this is how you find somebody. However, GitHub also provides an id
field, which, I believe, is persistent. (e.g. 22558602
for me).
How about this for sh:Person
?
sh:identifier
-> 22558602
gimie:githubUsername
-> cmdoret
sh:name
-> Cyril Matthey-Doret
Not sure if it makes sense to use a
gimie:
prefix forgithubUsername
So this would be some kind of variant of option 1...
from gimie.
sh:identifier -> 22558602
gotta be careful, sh: is the namespace for the SHACL spec, so this is always describing the ontology/schema. schema: is what you meant I guess. In that case, that would work well.
gimie:githubUsername -> cmdoret
yes, I think it makes sense. A quick google search has not yielded a nice "Git" ontology, so I think it's fair we create this property ourselves.
sh:name
This is a valid shacl property, but it is to indicate the name of a property, not the name of an object you are describing. Although it's a little bit silly (the meaning of "name" should not change depending on the namespace that uses it) I think you mean schema:name here.
from gimie.
Right, I should have used schema
instead of sh
😁
OK, maybe for now a non-persistent :identifier should be OK, and this would avoid having to develop a separate ontology.
So, e.g.
<https://api.github.com/users/cmdoret> a schema:Person ;
schema:affiliation <https://api.github.com/orgs/SDSC-ORD>,
<https://api.github.com/orgs/SwissDataScienceCenter>,
<https://api.github.com/orgs/koszullab> ;
schema:identifier "cmdoret" ;
schema:name "Cyril Matthey-Doret" .
from gimie.
Related Issues (20)
- Incorrect value for codeRepository
- Licenses not being picked up correctly HOT 2
- Extract license when unavailable HOT 3
- provide generic file object
- Reduce extractor complexity
- Add Parser concept HOT 1
- [ IP] publishing date - not pulled out of gimie HOT 2
- Fix docker push CI HOT 5
- Implement license detection for GitExtractor
- make list_files recursive HOT 9
- write contribution guide
- enforce conventional PR titles
- prevent docs rebuild on non-default branches HOT 1
- Implement license matcher HOT 2
- Optimize Github Actions HOT 1
- Optimize gimie container size
- License identifier not matched correctly HOT 1
- License (SPDX) maintenance strategy HOT 1
- Move code out of __init__ files
- graphql error on some large repos
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from gimie.