Skip to content

Commit

Permalink
Added info from Friday meeting
Browse files Browse the repository at this point in the history
  • Loading branch information
Jackson Morgan committed Mar 9, 2024
1 parent 0ef2b77 commit c10dded
Show file tree
Hide file tree
Showing 3 changed files with 155 additions and 0 deletions.
3 changes: 3 additions & 0 deletions hall-of-fame/march2024.md
@@ -0,0 +1,3 @@
# March 2024 Hackathon Hall of Fame

Judging for this hackathon has not been completed.
31 changes: 31 additions & 0 deletions index.md
Expand Up @@ -16,6 +16,12 @@ That's why, for this March Hackathon, we will provide participants with a set [S

Registrations will remain open even after the hackathon has begun.

## Prizes
All participants will be featured on the [March 2024 Hackathon Hall of Fame](./hall-of-fame/march2024.md), and first and second place will recieive special badges. In addition, first and second place will recieve cash prizes.

- First Place will recieve $400 USD.
- Second Place will recieve $200 USD.

## Important Dates

- __2024/03/18__: Hackathon officially begins
Expand All @@ -31,8 +37,33 @@ We encourage you to use one of the following developer tools. Each supports ShEx

You may choose to use any ShEx shape they like, make modifications to shapes, or decide to build applications their own way. But, if you're looking for a place to get started, see the shapes below:

- [Solid Profile](./shex/profile.shex): The Solid Profile defines the shape of data in a Solid WebId document.
- [Activity Pub](./shex/activity-pub.shex): Activity Pub is a general-use social media ontology used in popular platforms like Mastodon.

## Chat and get help

If you want to talk with other hackathon participants, join the [hackathon chat channel](https://app.gitter.im/#/room/#solid/hackathon:gitter.im).

## Judging Criteria

- Use of Shapes/Linked Data (25 points): Points will be awarded based on the team's use of RDF shapes (like ShEx, though points will not be deducted if a team decides to use other shapes like Shacl) and linked data documents. Does the application rely on structured data and use RDF best-practices?
- User Friendliness (20 points): Points will be awarded based on how user-friendly the final application is. Can a non-technical user easily navigate the application's features?
- Concept Novelty (15 points): Points will be awarded based on how novel an application is. Does it bring something to the Solid ecosystem that doesn't exist yet?
- Interoperability (15 points): Points will be awarded based on how interoperable an application is with other Solid applications. Does this application generate data that is useful for other existing applications or vice versa?
- Use of access control (10 points): Points will be awarded based on the application's use of access control. Are there parts of the application that use private data, and methods for granting and removing access?

## Submit your Project

Once you have completed your project, [Submit your project here](https://docs.google.com/forms/d/e/1FAIpQLSdbFQuJj7a00ez7V5wGAXd40-WjmO3q1rJ5lvA9D2uXowkCMA/viewform?usp=sf_link).

## Code of Conduct

This hackathon follows the [Solid Code of Conduct](https://github.com/solidjs/solid/blob/main/CODE_OF_CONDUCT.md).

## Organizers

This hackathon is organized by:
- Jackson Morgan
- Hadrian Zbarcea
- Michiel de Jong
- elf Pavlik
121 changes: 121 additions & 0 deletions shex/profile.shex
@@ -0,0 +1,121 @@
PREFIX srs: <https://shaperepo.com/schemas/solidProfile#>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX schem: <http://schema.org/>
PREFIX vcard: <http://www.w3.org/2006/vcard/ns#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX acl: <http://www.w3.org/ns/auth/acl#>
PREFIX cert: <http://www.w3.org/ns/auth/cert#>
PREFIX ldp: <http://www.w3.org/ns/ldp#>
PREFIX sp: <http://www.w3.org/ns/pim/space#>
PREFIX solid: <http://www.w3.org/ns/solid/terms#>

srs:SolidProfileShape EXTRA a {
a [ schem:Person ]
// rdfs:comment "Defines the node as a Person (from Schema.org)" ;
a [ foaf:Person ]
// rdfs:comment "Defines the node as a Person (from foaf)" ;
vcard:fn xsd:string ?
// rdfs:comment "The formatted name of a person. Example: John Smith" ;
foaf:name xsd:string ?
// rdfs:comment "An alternate way to define a person's name." ;
vcard:hasAddress @srs:AddressShape *
// rdfs:comment "The person's street address." ;
vcard:hasEmail @srs:EmailShape *
// rdfs:comment "The person's email." ;
vcard:hasPhoto IRI ?
// rdfs:comment "A link to the person's photo" ;
foaf:img xsd:string ?
// rdfs:comment "Photo link but in string form" ;
vcard:hasTelephone @srs:PhoneNumberShape *
// rdfs:comment "Person's telephone number" ;
vcard:phone xsd:string ?
// rdfs:comment "An alternative way to define a person's telephone number using a string" ;
vcard:organization-name xsd:string ?
// rdfs:comment "The name of the organization with which the person is affiliated" ;
vcard:role xsd:string ?
// rdfs:comment "The name of the person's role in their organization" ;
acl:trustedApp @srs:TrustedAppShape *
// rdfs:comment "A list of app origins that are trusted by this user" ;
cert:key @srs:RSAPublicKeyShape *
// rdfs:comment "A list of RSA public keys that are associated with private keys the user holds." ;
ldp:inbox IRI
// rdfs:comment "The user's LDP inbox to which apps can post notifications" ;
sp:preferencesFile IRI ?
// rdfs:comment "The user's preferences" ;
sp:storage IRI *
// rdfs:comment "The location of a Solid storage server related to this WebId" ;
solid:account IRI ?
// rdfs:comment "The user's account" ;
solid:privateTypeIndex IRI *
// rdfs:comment "A registry of all types used on the user's Pod (for private access only)" ;
solid:publicTypeIndex IRI *
// rdfs:comment "A registry of all types used on the user's Pod (for public access)" ;
foaf:knows IRI *
// rdfs:comment "A list of WebIds for all the people this user knows." ;
}

srs:AddressShape {
vcard:country-name xsd:string ?
// rdfs:comment "The name of the user's country of residence" ;
vcard:locality xsd:string ?
// rdfs:comment "The name of the user's locality (City, Town etc.) of residence" ;
vcard:postal-code xsd:string ?
// rdfs:comment "The user's postal code" ;
vcard:region xsd:string ?
// rdfs:comment "The name of the user's region (State, Province etc.) of residence" ;
vcard:street-address xsd:string ?
// rdfs:comment "The user's street address" ;
}

srs:EmailShape EXTRA a {
a [
vcard:Dom
vcard:Home
vcard:ISDN
vcard:Internet
vcard:Intl
vcard:Label
vcard:Parcel
vcard:Postal
vcard:Pref
vcard:Work
vcard:X400
] ?
// rdfs:comment "The type of email." ;
vcard:value IRI
// rdfs:comment "The value of an email as a mailto link (Example <mailto:jane@example.com>)" ;
}

srs:PhoneNumberShape EXTRA a {
a [
vcard:Dom
vcard:Home
vcard:ISDN
vcard:Internet
vcard:Intl
vcard:Label
vcard:Parcel
vcard:Postal
vcard:Pref
vcard:Work
vcard:X400
] ?
// rdfs:comment "They type of Phone Number" ;
vcard:value IRI
// rdfs:comment "The value of a phone number as a tel link (Example <tel:555-555-5555>)" ;
}

srs:TrustedAppShape {
acl:mode [acl:Append acl:Control acl:Read acl:Write] +
// rdfs:comment "The level of access provided to this origin" ;
acl:origin IRI
// rdfs:comment "The app origin the user trusts"
}

srs:RSAPublicKeyShape {
cert:modulus xsd:string
// rdfs:comment "RSA Modulus" ;
cert:exponent xsd:integer
// rdfs:comment "RSA Exponent" ;
}

0 comments on commit c10dded

Please sign in to comment.