asonix
86198d903b
There are two collections for storing our triple information - Triple: keeps track of Subject, Predicate, Object relationships - Object: keeps contents of Subject, Predicate, and Object We have a single API implementation for fetching triples related to a specific Subject In the future, building out more APIs should be simpler since we already have an example TODO: handle errors in the TriplesBySubject API
61 lines
2.9 KiB
Markdown
61 lines
2.9 KiB
Markdown
# triplestore
|
|
|
|
RDF is a way to represent data that has many relationships
|
|
for example:
|
|
|
|
Say we have a post on mast of don by user 6my at yiff.life
|
|
```
|
|
{
|
|
"@context": [
|
|
"https://activitystreams namepsace url",
|
|
"https://security extension url here",
|
|
{
|
|
"masto specific": "keys and values"
|
|
}
|
|
],
|
|
"id": "https://yiff.life/users/6my",
|
|
"type": "Person", // unforutnately not "Cat", maybe we can add that extension sometime
|
|
"displayName": "Angy Cat",
|
|
"shortname": "@6my",
|
|
"followers": "https://yiff.life/users/6my/followers"
|
|
"publicKey": {
|
|
"id": "https://yiff.life/users/6my#main-key",
|
|
"owner": "https://yiff.life/users/6my",
|
|
"publicKeyPem": "asdfasdfasdfasdfasdfasdfasfdasdfasdfasdfasdfasdfasdf"
|
|
},
|
|
"attachment": [
|
|
{
|
|
"type": "PropertyValue",
|
|
"name": "Pronouns",
|
|
"value": "he/him"
|
|
},
|
|
{
|
|
"type": "PropertyValue",
|
|
"name": "kofi",
|
|
"value": "hywecp"
|
|
}
|
|
]
|
|
}
|
|
```
|
|
this is "Json Linked Data"
|
|
|
|
```
|
|
https://yiff.life/users/6my, https://activitystreams namespace url#type, Person
|
|
https://yiff.life/users/6my, https://activitystreams namespace url#displayName, Angy Cat
|
|
https://yiff.life/users/6my, https://activitystreams namespace url#shortname, @6my
|
|
https://yiff.life/users/6my, https://activitystreams namespace url#followers, https://yiff.life/users/6my/followers
|
|
https://yiff.life/users/6my, https://security extension url here#publicKey, https://yiff.life/users/6my#main-key
|
|
https://yiff.life/users/6my, https://security extension url here#attachment, _:a
|
|
https://yiff.life/users/6my, https://security extension url here#attachment, _:b
|
|
https://yiff.life/users/6my#main-key https://security extension url here#owner, https://yiff.life/user/6my
|
|
https://yiff.life/users/6my#main-key https://security extension url here#publicKeyPem, asdfasdfasdfasdfasdfasdfasfdasdfasdfasdfasdfasdfasdf
|
|
https://yiff.life/users/6my/followers https://activitystreams namespace url#items, https://masto.asonix.dog/users/asonix
|
|
https://yiff.life/users/6my/followers https://activitystreams namespace url#items, https://casually.cat/users/casuallynoted
|
|
_:a https://schema.org/xml#type https://schema.org/xml#PropertyValue
|
|
_:a https://schema.org/xml#name Pronouns
|
|
_:a https://schema.org/xml#value he/him
|
|
_:b https://schema.org/xml#type PropertyValue
|
|
_:b https://schema.org/xml#name kofi
|
|
_:b https://schema.org/xml#value hywecp
|
|
```
|