Planning | Description | Requirements | UI Mockup | Triples Examples
Table of Contents
Ontologies
The following is a list of all ontologies used by the Triple Examples.
Name | Prefix | URL | Details | Comments |
---|---|---|---|---|
RDF | rdf | http://www.w3.org/1999/02/22-rdf-syntax-ns# | specification | |
RDF Schema | rdfs | http://www.w3.org/2000/01/rdf-schema# | specification | |
Dublin Core | dc | http://purl.org/dc/elements/1.1/ | specification | |
Dublin Core Terms | dcterms | http://purl.org/dc/terms | specification | Required by OA |
Dublin Core Types | dctype | http://purl.org/dc/dcmitype | specification | Required by OA |
Content | cnt | http://www.w3.org/2011/content# | specification | Required by OA |
Collections | co | http://purl.org/co | specification | |
Open Annotation | oa | http://www.w3.org/ns/oa | specification | |
Friend of a Friend | foaf | http://xmlns.com/foaf/0.1 | specification | Also used by OA |
Virtual Collections
Virtual Collection's owner
n-triples
<??? URI WITH NETID ???> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person>
Turtle
@prefix foaf: <http://xmlns.com/foaf/0.1> . <??? URI WITH NETID ???> a foaf:Person .
QUESTIONS:
- What URI do we use for a user? Does NETID make the URI unique?
- Do we want to keep any other foaf properties beyond setting the type to foaf person?
Virtual Collection's metadata
n-triples
<http://localhost:3000/virtualcollection/changeme:155> <http://www.w3.org/2000/01/rdf-schema#label> "My Virtual Collection" . <http://localhost:3000/virtualcollection/changeme:155> <http://www.w3.org/2000/01/rdf-schema#comment> "These are resources I am gathering together for personal use." . <http://localhost:3000/virtualcollection/changeme:155> <http://purl.org/dc/elements/1.1/creator> <??? URI WITH NETID ???> .
Turtle
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . @prefix dc: <http://purl.org/dc/elements/1.1/> . <http://localhost:3000/virtualcollection/changeme:155> rdfs:label "My Virtual Collection" ; rdfs:comment "These are resources I am gathering together for personal use." ; dc:creator <??? URI WITH NETID ???> .
NOTE: Potential alternatives...
- rdfs:label – dc:title
- rdfs:comment – dc:description
QUESTIONS:
- dc:creator is being used to identify the "owner" of the virtual collection. Should the owner relationship be more explicit? See Access Thoughts below for more info on what it means to be an owner.
Virtual Collection's list of items
Example 1: A Virtual Collection as a List with one Item
n-triples
<http://localhost:3000/virtualcollection/changeme:155> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://purl.org/co#List> <http://localhost:3000/virtualcollection/changeme:155> <http://purl.org/co#size> "1"^^xsd:nonNegativeInteger <http://localhost:3000/virtualcollection/changeme:155> <http://purl.org/co#firstItem> <http://localhost:3000/virtualcollection/item/changeme:156> <http://localhost:3000/virtualcollection/changeme:155> <http://purl.org/co#item> <http://localhost:3000/virtualcollection/item/changeme:156> <http://localhost:3000/virtualcollection/changeme:155> <http://purl.org/co#lastItem> <http://localhost:3000/virtualcollection/item/changeme:156> <http://localhost:3000/virtualcollection/item/changeme:156> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://purl.org/co#ListItem> <http://localhost:3000/virtualcollection/item/changeme:156> <http://purl.org/co#index> "1"^^xsd:positiveInteger <http://localhost:3000/virtualcollection/item/changeme:156> <http://purl.org/co#itemContent> <http://da-rdf.library.cornell.edu/individual/b3652730>
Turtle
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix co: <http://purl.org/co> . <http://localhost:3000/virtualcollection/changeme:155> a co:List ; co:size "1"^^xsd:nonNegativeInteger ; co:firstItem <http://localhost:3000/virtualcollection/item/changeme:156> ; co:item <http://localhost:3000/virtualcollection/item/changeme:156> ; co:lastItem <http://localhost:3000/virtualcollection/item/changeme:156> . <http://localhost:3000/virtualcollection/item/changeme:156> a co:ListItem co:index "1"^^xsd:positiveInteger ; co:itemContent <http://da-rdf.library.cornell.edu/individual/b3652730> .
Example 2: A Virtual Collection as a List with multiple ordered Items
n-triples
<http://localhost:3000/virtualcollection/changeme:155> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://purl.org/co#List> <http://localhost:3000/virtualcollection/changeme:155> <http://purl.org/co#size> "4"^^xsd:nonNegativeInteger <http://localhost:3000/virtualcollection/changeme:155> <http://purl.org/co#firstItem> <http://localhost:3000/virtualcollection/item/changeme:156> <http://localhost:3000/virtualcollection/changeme:155> <http://purl.org/co#item> <http://localhost:3000/virtualcollection/item/changeme:156> <http://localhost:3000/virtualcollection/changeme:155> <http://purl.org/co#item> <http://localhost:3000/virtualcollection/item/changeme:157> <http://localhost:3000/virtualcollection/changeme:155> <http://purl.org/co#item> <http://localhost:3000/virtualcollection/item/changeme:158> <http://localhost:3000/virtualcollection/changeme:155> <http://purl.org/co#item> <http://localhost:3000/virtualcollection/item/changeme:159> <http://localhost:3000/virtualcollection/changeme:155> <http://purl.org/co#lastItem> <http://localhost:3000/virtualcollection/item/changeme:159> <http://localhost:3000/virtualcollection/changeme:155/item/changeme:156> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://purl.org/co#ListItem> <http://localhost:3000/virtualcollection/changeme:155/item/changeme:156> <http://purl.org/co#index> "1"^^xsd:positiveInteger <http://localhost:3000/virtualcollection/changeme:155/item/changeme:156> <http://purl.org/co#itemContent> <http://da-rdf.library.cornell.edu/individual/b3652730> <http://localhost:3000/virtualcollection/changeme:155/item/changeme:156> <http://purl.org/co#nextItem> <http://localhost:3000/virtualcollection/item/changeme:157> <http://localhost:3000/virtualcollection/changeme:155/item/changeme:157> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://purl.org/co#ListItem> <http://localhost:3000/virtualcollection/changeme:155/item/changeme:157> <http://purl.org/co#index> "2"^^xsd:positiveInteger <http://localhost:3000/virtualcollection/changeme:155/item/changeme:157> <http://purl.org/co#itemContent> <http://da-rdf.library.cornell.edu/individual/b3652234> <http://localhost:3000/virtualcollection/changeme:155/item/changeme:157> <http://purl.org/co#nextItem> <http://localhost:3000/virtualcollection/item/changeme:158> <http://localhost:3000/virtualcollection/changeme:155/item/changeme:158> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://purl.org/co#ListItem> <http://localhost:3000/virtualcollection/changeme:155/item/changeme:158> <http://purl.org/co#index> "3"^^xsd:positiveInteger <http://localhost:3000/virtualcollection/changeme:155/item/changeme:158> <http://purl.org/co#itemContent> <http://da-rdf.library.cornell.edu/individual/b3652543> <http://localhost:3000/virtualcollection/changeme:155/item/changeme:158> <http://purl.org/co#nextItem> <http://localhost:3000/virtualcollection/item/changeme:159> <http://localhost:3000/virtualcollection/changeme:155/item/changeme:159> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://purl.org/co#ListItem> <http://localhost:3000/virtualcollection/changeme:155/item/changeme:159> <http://purl.org/co#index> "4"^^xsd:positiveInteger <http://localhost:3000/virtualcollection/changeme:155/item/changeme:159> <http://purl.org/co#itemContent> <http://da-rdf.library.cornell.edu/individual/b3652884>
Turtle
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix co: <http://purl.org/co> . <http://localhost:3000/virtualcollection/changeme:155> a co:List ; co:size "4"^^xsd:nonNegativeInteger ; co:firstItem <http://localhost:3000/virtualcollection/item/changeme:156> ; co:item <http://localhost:3000/virtualcollection/item/changeme:156> ; co:item <http://localhost:3000/virtualcollection/item/changeme:157> ; co:item <http://localhost:3000/virtualcollection/item/changeme:158> ; co:item <http://localhost:3000/virtualcollection/item/changeme:159> ; co:lastItem <http://localhost:3000/virtualcollection/item/changeme:159> . <http://localhost:3000/virtualcollection/item/changeme:156> a co:ListItem ; co:index "1"^^xsd:positiveInteger ; co:itemContent <http://da-rdf.library.cornell.edu/individual/b3652730> ; co:nextItem <http://localhost:3000/virtualcollection/item/changeme:157> . <http://localhost:3000/virtualcollection/item/changeme:157> a co:ListItem ; co:index "2"^^xsd:positiveInteger ; co:itemContent <http://da-rdf.library.cornell.edu/individual/b3652234> ; co:nextItem <http://localhost:3000/virtualcollection/item/changeme:158> . <http://localhost:3000/virtualcollection/item/changeme:158> a co:ListItem ; co:index "3"^^xsd:positiveInteger ; co:itemContent <http://da-rdf.library.cornell.edu/individual/b3652543> ; co:nextItem <http://localhost:3000/virtualcollection/item/changeme:159> . <http://localhost:3000/virtualcollection/item/changeme:159> a co:ListItem ; co:index "4"^^xsd:positiveInteger ; co:itemContent <http://da-rdf.library.cornell.edu/individual/b3652884> .
Comments
Comments as Free Form Text Annotation
n-triples
<http://localhost:3000/virtualcollection/changeme:155/item/changeme:159/comment/changeme:93> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/ns/oa#Annotation> . <http://localhost:3000/virtualcollection/changeme:155/item/changeme:159/comment/changeme:93> <http://www.w3.org/ns/oa#hasTarget> <http://localhost:3000/virtualcollection/item/changeme:156> . <http://localhost:3000/virtualcollection/changeme:155/item/changeme:159/comment/changeme:93> <http://www.w3.org/ns/oa#hasBody> <http://localhost:3000/annotations/bodies/3652730_changeme:93> . <http://localhost:3000/virtualcollection/changeme:155/item/changeme:159/comment/changeme:93> <http://www.w3.org/ns/oa#motivatedBy> <http://www.w3.org/ns/oa#Comments> . <http://localhost:3000/virtualcollection/changeme:155/item/changeme:159/comment/changeme:93/body> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://purl.org/dc/dcmitype/Text> . <http://localhost:3000/virtualcollection/changeme:155/item/changeme:159/comment/changeme:93/body> <http://www.w3.org/2011/content#chars> "This is my favorite book." . <http://localhost:3000/virtualcollection/changeme:155/item/changeme:159/comment/changeme:93/body> <http://purl.org/dc/terms/format> "text/plain" .
Turtle
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix dcterms: <http://purl.org/dc/terms> . @prefix dctype: <http://purl.org/dc/dcmitype> . @prefix cnt: <http://www.w3.org/2011/content#> . @prefix oa: <http://www.w3.org/ns/oa> . <http://localhost:3000/virtualcollection/changeme:155/item/changeme:159/comment/changeme:93> a oa:Annotation ; oa:hasTarget <http://localhost:3000/virtualcollection/item/changeme:156> ; oa:hasBody <http://localhost:3000/annotations/bodies/3652730_changeme:93> ; oa:annotatedBy <??? URI WITH NETID ???> ; oa:motivatedBy oa:commenting . <http://localhost:3000/virtualcollection/changeme:155/item/changeme:159/comment/changeme:93/body> a dctype:Text ; cnt:chars "This is my favorite book." ; dcterms:format "text/plain" .
URI Generation Thoughts
QUESTIONS:
- URIs are generated for the following and need to be unique
- owner – use netid to make unique
- virtual collection (co:List and co:ListItems)
- comment (oa:Annotation and annotation body)
- Stanford Demo of annotations
- URIs used the pid of annotation stored in Fedora by Hydra to generate a unique URI. This may not apply going forward.
- Will something similar be available for use to generate URIs for virtual collections, items, and comments?
- Original demo at Stanford included a see also property for the annotation. The see also link was the URL to the visual representation on a webpage.
- Do we want something similar?
- What are common methods for generating URIs?
Access Thoughts
QUESTIONS:
- What method is used to protect private Virtual Collections?
- Option 1: maintain two triple stores: 1) private, 2) public
- Option 2: named graph within a single triplestore
- What triples, if any, are stored for the following concepts related to access control?
- Roles (e.g. site-admin, library-admin, user)
- only a small set of roles will exist
- Groups (e.g. shared_read_group, shared_write_group)
- potential for large number of groups to be created by users
- Privileges
- definitions of what users with specific roles can do
- Roles (e.g. site-admin, library-admin, user)
- What of these are application specific and what are needed in triples?
Private vs. Public
- Public Virtual Collection
- Is discoverable through public search.
- Any user, logged in or not, can view a public virtual collection.
- Private Virtual Collection
- Is NOT discoverable through public search.
- User must be logged in and be the owner/creator of the virtual collection to view/edit a private virtual collection.
Semi-Private with Shared Access
- Allow shared read-only access. Virtual Collection is not discoverable through public search.
- Option 1: Provide a URL that the owner can share with other users. Anyone using the URL will be able to view the Virtual Collection.
- Option 2: Owner identifies other users who are allowed to view the Virtual Collection
Collaboration
- Allow share write access
- Option 1: Owner identifies other users who are allowed to edit the Virtual Collection.
NOTE: This doesn't really come into play until Use Case 1.2, but I want to think about the other access issues with this in mind.