...
Planning | Description | Requirements | UI Mockup | Triples Examples | Queries Examples
...
Table of Contents
...
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 |
CollectionsORE | coore | http://purlwww.openarchives.org/ore/terms/co | specification | Recommended as an alternative to the Collections ontology by Rob. Represents both ordered and unordered items using the Aggregation class. |
IANA | iana | Open Annotation | oa | http://www.w3iana.org/assignments/nsrelation/oa | specification | | ORE uses this ontology for first, last, next, and prev predicates. |
Collections | co | Friend of a Friend | foaf | http://xmlnspurl.com/foaf/0.1org/co | specification, | Also used by OA |
Virtual Collections
Virtual Collection's owner
...
language | none |
---|
title | n-triples |
---|
...
examples | Can represent unordered items using the Bag class and ordered items using the List class. |
Open Annotation | oa | http://www.w3.org/ |
...
Virtual Collections
Virtual Collection's owner
Note: The owner is represented as dc:creator in the Virtual Collection's metadata.
Expand |
---|
title | Expand to see n-triples... |
---|
| /Person> |
@prefix foaf: | Turtle | 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?
...
vivo.cornell.edu/individual/individual24416> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> .
<http://vivo.cornell.edu/individual/individual24416> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Agent> . |
|
Code Block |
---|
language | none |
---|
title | n-triples | Turtle |
---|
|
@prefix foaf: <http://localhost:3000/virtualcollection/changeme:155> xmlns.com/foaf/0.1> .
<http://wwwvivo.w3cornell.orgedu/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 ???> . |
Code Block |
---|
|
individual/individual24416> a foaf:Person, foaf:Agent .
|
NOTE:
- ORE uses foaf:Agent as the dc:creator.
QUESTIONS:
- What URI do we use for a user?
- ANSWER: Each university will determine what to use as the URI for users.
- Cornell: Will use VIVO URI's for faculty and staff. Doesn't work for students.
- Harvard: ?
- Stanford: ?
Expand |
---|
title | Reconciled Questions |
---|
|
- Do we want to keep any other foaf properties beyond setting the type to foaf person?
- ANSWER: None extra needed in our triplestore. We can revisit this if it becomes clear by the implementation that we need to keep additional information.
|
Virtual Collection's metadata
Expand |
---|
title | Expand to see n-triples... |
---|
|
Code Block |
---|
language | none |
---|
title | n-triples |
---|
| <http://localhost:3000/individual/vc155> <http://purl.org/dc/terms/title> "My Virtual Collection" .
<http://localhost:3000/individual/vc155> <http://purl.org/dc/terms/description> | @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
Code Block |
---|
language | none |
---|
title | 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> |
Code Block |
---|
|
@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> . |
...
.
<http://localhost:3000/individual/vc155> <http://purl.org/dc/elements/1.1/creator> <http://vivo.cornell.edu/individual/individual24416> . |
|
Code Block |
---|
|
@prefix dc: <http://purl.org/dc/elements/1.1/> .
@prefix dcterms: <http://purl.org/dc/terms> .
<http://localhost:3000/individual/vc155>
dcterms:title "My Virtual Collection" ;
dcterms:description "These are resources I am gathering together for personal use." ;
dc:creator <http://vivo.cornell.edu/individual/individual24416> . |
QUESTIONS:
- Should dc:creator be used for ownership role?
- ANSWER: NO - per Paolo
- REASON: Muddy concept. Did the user create the resource or add the resource to the collection?
- ALTERNATIVE: Under exploration. Paolo recommends looking at...
Expand |
---|
title | Reconciled Questions |
---|
|
|
Virtual Collection's list of items
Two ontologies have been identified as potential candidates for representing a list of items. The pros and cons are listed below for each ontology, followed by examples using each ontology.
| Collections ontology | | ORE ontology |
---|
– | unordered and ordered collections are represented by two separate class constructs, Bag and List respectively | + | unordered and ordered collections are represented by the same class construct, Aggregation |
+ | item property names are easy to understand (e.g., index, itemContent, nextItem) | – | item property names are cryptic (e.g., proxyFor, proxyIn, next) |
– | order is determined by an item property pointing to the next item, i.e., nextItem. | – | order is determined by an item property pointing to the next item, i.e., next |
– | URI for the item is not associated with the collection class (e.g., List, Bag). URI can be associated directly to the collection class through co:element. co:element is defined through a chain: has sub-property chains [has item o has item content]. That means that the inference layer can resolve both (Paolo). | + | URI for the item is associated with the collection class (i.e., Aggregation) via of the aggregates property. |
+ | URI for the item is associated with the item class (i.e., Item) via the itemContent property. | + | URI for the item is associated with the item class (i.e., Proxy) via the proxyFor property. |
Ordered Collection Examples
Example 1-co: A Virtual Collection as an ordered collection of items using Collection Ontology's List with one item
Expand |
---|
title | Expand to see n-triples... |
---|
|
Code Block |
---|
language | none |
---|
title | n-triples |
---|
| <http://localhost:3000/ | virtualcollectionchangeme:155>vc155> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://purl.org/co#List> .
<http://localhost:3000/ | virtualcollectionchangeme:155>vc155> <http://purl.org/co#size> " | 41"^^xsd:nonNegativeInteger .
<http://localhost:3000/ | virtualcollectionchangeme:155>vc155> <http://purl.org/co#firstItem> <http://localhost:3000/ | virtualcollection/item/changeme:156>individual/vci162> .
<http://localhost:3000/ | virtualcollectionchangeme:155>vc155> <http://purl.org/co#item> <http://localhost:3000/ | virtualcollection/item/changeme:156>individual/vci162> .
<http://localhost:3000/ | virtualcollectionchangeme:155>co#item>co#lastItem> <http://localhost:3000/ | virtualcollection/item/changeme:157>individual/vci162> .
<http://localhost:3000/ | virtualcollectionchangeme:155>vci162> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://purl.org/ | co#item>co#ListItem> .
<http://localhost:3000/ | virtualcollection/item/changeme:158>
<http://localhost:3000/virtualcollection/changeme:155> individual/vci162> <http://purl.org/ | co#item> <http://localhost:3000/virtualcollection/item/changeme:159>co#index> "1"^^xsd:positiveInteger .
<http://localhost:3000/ | virtualcollectionchangeme:155>vci162> <http://purl.org/ | co#lastItem>co#itemContent> <http://da-rdf.library.cornell.edu/individual/b3652730> . |
|
Code Block |
---|
language | none |
---|
title | Turtle using Collection ontology's List class |
---|
|
@prefix rdf: 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>ns#> .
@prefix co: <http://purl.org/co#ListItem>co> .
<http://localhost:3000/virtualcollection/changeme:155/item/changeme:156> <http://purl.org/co#index>individual/vc155> a co:List ;
co:size "1"^^xsd:positiveInteger
nonNegativeInteger ;
co:firstItem <http://localhost:3000/virtualcollection/changeme:155/item/changeme:156>individual/vci162> ;
co:item <http://purl.org/co#itemContent>localhost:3000/individual/vci162> ;
co:lastItem <http://da-rdf.library.cornell.edulocalhost:3000/individual/b3652730>vci162> .
<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>individual/vci162> a co:ListItem
co:index "1"^^xsd:positiveInteger ;
co:itemContent <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://purl.org/co#ListItem>
da-rdf.library.cornell.edu/individual/b3652730> . |
Example 1-ore: A Virtual Collection as an ordered collection of items using ORE Ontology's Aggregation with one item
Expand |
---|
title | Expand to see n-triples... |
---|
|
Code Block |
---|
language | none |
---|
title | n-triples |
---|
| <http://localhost:3000/ | virtualcollection/changeme:155/item/changeme:157>individual/vc155> <http:// | purlco#index> "2"^^xsd:positiveInteger1999/02/22-rdf-syntax-ns#type> <http://www.openarchives.org/ore/terms/Aggregation> .
<http://localhost:3000/ | virtualcollection/changeme:155/item/changeme:157>individual/vc155> <http:// | purlwww.openarchives.org/ore/terms/ | co#itemContent>aggregates> <http://da-rdf.library.cornell.edu/individual/b3652730> . |
|
Code Block |
---|
language | none |
---|
title | Turtle using ORE ontology's Aggregation class |
---|
|
@prefix ore: b3652234>
<http://localhost:3000/virtualcollection/changeme:155/item/changeme:157> <http://purl.org/co#nextItem> www.openarchives.org/ore/terms/> .
<http://localhost:3000/virtualcollection/item/changeme:158>
<http://localhost:3000/virtualcollection/changeme:155/item/changeme:158>individual/vc155> a ore:Aggregation ;
ore:aggregates <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://purl.org/co#ListItem>
da-rdf.library.cornell.edu/individual/b3652730> . |
Example 2-co: A Virtual Collection as an ordered collection of items using Collection Ontology's List with multiple ordered items
Expand |
---|
title | Expand to see n-triples... |
---|
|
Code Block |
---|
language | none |
---|
title | n-triples |
---|
| <http://localhost:3000/ | virtualcollectionchangeme:155/item/changeme:158>vc155> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://purl.org/ | co#index> "3"^^xsd:positiveIntegerco#List> .
<http://localhost:3000/ | virtualcollection/changeme:155/item/changeme:158>individual/vc155> <http://purl.org/ | co#itemContent> <http://da-rdf.library.cornell.edu/individual/b3652543>co#size> "4"^^xsd:nonNegativeInteger .
<http://localhost:3000/ | virtualcollection/changeme:155/item/changeme:158>individual/vc155> <http://purl.org/ | co#nextItem>co#firstItem> <http://localhost:3000/ | virtualcollection/item/changeme:159>
individual/vci162> .
<http://localhost:3000/ | virtualcollectionchangeme155item/changeme:159>purl.org/co#item> <http:// | www.w3.org/1999/02/22-rdf-syntax-ns#type>localhost:3000/individual/vci162> .
<http://localhost:3000/individual/vc155> <http://purl.org/co#item> <http://localhost:3000/individual/vci163> .
<http://localhost:3000/individual/vc155> <http://purl.org/ | co#ListItem>co#item> <http://localhost:3000/individual/vci164> .
<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>
/individual/vc155> <http://purl.org/co#item> <http://localhost:3000/individual/vci165> .
<http://localhost:3000/individual/vc155> <http://purl.org/co#lastItem> <http://localhost:3000/individual/vci165> .
<http://localhost:3000/individual/vci162> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://purl.org/co#ListItem> .
<http://localhost:3000/individual/vci162> <http://purl.org/co#index> "1"^^xsd:positiveInteger .
<http://localhost:3000/individual/vci162> <http://purl.org/co#itemContent> <http://da-rdf.library.cornell.edu/individual/b3652730> .
<http://localhost:3000/individual/vci162> <http://purl.org/co#nextItem> <http://localhost:3000/individual/vci163> .
<http://localhost:3000/individual/vci163> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://purl.org/co#ListItem> .
<http://localhost:3000/individual/vci163> <http://purl.org/co#index> "2"^^xsd:positiveInteger .
<http://localhost:3000/individual/vci163> <http://purl.org/co#itemContent> <http://da-rdf.library.cornell.edu/individual/b3652234> .
<http://localhost:3000/individual/vci163> <http://purl.org/co#nextItem> <http://localhost:3000/individual/vci164> .
<http://localhost:3000/individual/vci164> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://purl.org/co#ListItem> .
<http://localhost:3000/individual/vci164> <http://purl.org/co#index> "3"^^xsd:positiveInteger .
<http://localhost:3000/individual/vci164> <http://purl.org/co#itemContent> <http://da-rdf.library.cornell.edu/individual/b3652543> .
<http://localhost:3000/individual/vci164> <http://purl.org/co#nextItem> <http://localhost:3000/individual/vci165> .
<http://localhost:3000/individual/vci165> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://purl.org/co#ListItem> .
<http://localhost:3000/individual/vci165> <http://purl.org/co#index> "4"^^xsd:positiveInteger .
<http://localhost:3000/individual/vci165> <http://purl.org/co#itemContent> <http://da-rdf.library.cornell.edu/individual/b3652884> .
|
|
Code Block |
---|
language | none |
---|
title | Turtle using Collection ontology's List class |
---|
|
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix co: <http://purl.org/co> .
<http://localhost:3000/individual/vc155> a co:List ;
co:size "4"^^xsd:nonNegativeInteger ;
co:firstItem <http://localhost:3000/individual/vci162> ;
co:item <http://localhost:3000/individual/vci162> ;
co:item <http://localhost:3000/individual/vci163> ;
co:item <http://localhost:3000/individual/vci164> ;
co:item <http://localhost:3000/individual/vci165> ;
co:lastItem <http://localhost:3000/individual/vci165> .
<http://localhost:3000/individual/vci162> a co:ListItem ;
co:index "1"^^xsd:positiveInteger ;
co:itemContent <http://da-rdf.library.cornell.edu/individual/b3652730> ;
co:nextItem <http://localhost:3000/individual/vci163> .
<http://localhost:3000/individual/vci163> a co:ListItem ;
co:index "2"^^xsd:positiveInteger ;
co:itemContent <http://da-rdf.library.cornell.edu/individual/b3652234> ;
co:nextItem <http://localhost:3000/individual/vci164> .
<http://localhost:3000/individual/vci164> a co:ListItem ;
co:index "3"^^xsd:positiveInteger ;
co:itemContent <http://da-rdf.library.cornell.edu/individual/b3652543> ;
co:nextItem <http://localhost:3000/individual/vci165> .
<http://localhost:3000/individual/vci165> a co:ListItem ;
co:index "4"^^xsd:positiveInteger ;
co:itemContent <http://da-rdf.library.cornell.edu/individual/b3652884> .
|
Example 2-ore: A Virtual Collection as an ordered collection of items using ORE Ontology's Aggregation with multiple ordered items
Expand |
---|
title | Expand to see n-triples... |
---|
|
Code Block |
---|
language | none |
---|
title | n-triples |
---|
| <http://localhost:3000/individual/vc155> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.openarchives.org/ore/terms/Aggregation> .
<http://localhost:3000/individual/vc155> <http://www.openarchives.org/ore/terms/aggregates> <http://da-rdf.library.cornell.edu/individual/b3652730> .
<http://localhost:3000/individual/vc155> <http://www.openarchives.org/ore/terms/aggregates> <http://da-rdf.library.cornell.edu/individual/b3652234> .
<http://localhost:3000/individual/vc155> <http://www.openarchives.org/ore/terms/aggregates> <http://da-rdf.library.cornell.edu/individual/b3652543> .
<http://localhost:3000/individual/vci162> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.openarchives.org/ore/terms/Proxy> .
<http://localhost:3000/individual/vci162> <http://www.openarchives.org/ore/terms/proxyFor> <http://da-rdf.library.cornell.edu/individual/b3652730> .
<http://localhost:3000/individual/vci162> <http://www.openarchives.org/ore/terms/proxyIn> <http://localhost:3000/individual/vc155> .
<http://localhost:3000/individual/vci162> <http://www.iana.org/assignments/relation/next> <http://localhost:3000/individual/vci163> .
<http://localhost:3000/individual/vci163> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.openarchives.org/ore/terms/Proxy> .
<http://localhost:3000/individual/vci163> <http://www.openarchives.org/ore/terms/proxyFor> <http://da-rdf.library.cornell.edu/individual/b3652234> .
<http://localhost:3000/individual/vci163> <http://www.openarchives.org/ore/terms/proxyIn> <http://localhost:3000/individual/vc155> .
<http://localhost:3000/individual/vci163> <http://www.iana.org/assignments/relation/next> <http://localhost:3000/individual/vci164> .
<http://localhost:3000/individual/vci164> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.openarchives.org/ore/terms/Proxy> .
<http://localhost:3000/individual/vci164> <http://www.openarchives.org/ore/terms/proxyFor> <http://da-rdf.library.cornell.edu/individual/b3652543> .
<http://localhost:3000/individual/vci164> <http://www.openarchives.org/ore/terms/proxyIn> <http://localhost:3000/individual/vc155> .
|
|
Code Block |
---|
language | none |
---|
title | Turtle using ORE ontology's Aggregation class |
---|
|
@prefix ore: <http://www.openarchives.org/ore/terms/> .
@prefix iana: <http://www.iana.org/assignments/relation/> .
<http://localhost:3000/individual/vc155> a ore:Aggregation ;
ore:aggregates <http://da-rdf.library.cornell.edu/individual/b3652730> ;
ore:aggregates <http://da-rdf.library.cornell.edu/individual/b3652234> ;
ore:aggregates <http://da-rdf.library.cornell.edu/individual/b3652543> .
<http://localhost:3000/individual/vci162> a ore:Proxy ;
ore:proxyFor <http://da-rdf.library.cornell.edu/individual/b3652730> ;
ore:proxyIn <http://localhost:3000/individual/vc155> ;
iana:next <http://localhost:3000/individual/vci163> .
<http://localhost:3000/individual/vci163> a ore:Proxy ;
ore:proxyFor <http://da-rdf.library.cornell.edu/individual/b3652234> ;
ore:proxyIn <http://localhost:3000/individual/vc155> ;
iana:next <http://localhost:3000/individual/vci164> .
<http://localhost:3000/individual/vci164> a ore:Proxy ;
ore:proxyFor <http://da-rdf.library.cornell.edu/individual/b3652543> ;
ore:proxyIn <http://localhost:3000/individual/vc155> .
|
Unordered Collection Examples
Example 3-co: A Virtual Collection as an unordered collection of items using Collection Ontology's Bag with one item
Expand |
---|
title | Expand to see n-triples... |
---|
|
Code Block |
---|
language | none |
---|
title | n-triples |
---|
| <http://localhost:3000/individual/vc255> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://purl.org/co#Bag> .
<http://localhost:3000/individual/vc255> <http://purl.org/co#size> "1"^^xsd:nonNegativeInteger .
<http://localhost:3000/individual/vc255> <http://purl.org/co#item> <http://localhost:3000/individual/vci162> .
<http://localhost:3000/individual/vci262> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://purl.org/co#Item> .
<http://localhost:3000/individual/vci262> <http://purl.org/co#itemContent> <http://da-rdf.library.cornell.edu/individual/b3652730> . |
|
Code Block |
---|
language | none |
---|
title | Turtle using Collection ontology's Bag class |
---|
|
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix co: <http://purl.org/co> .
<http://localhost:3000/individual/vc255> a co:Bag ;
co:size "1"^^xsd:nonNegativeInteger ;
co:item <http://localhost:3000/individual/vci262> .
<http://localhost:3000/individual/vci262> a co:Item ;
co:itemContent <http://da-rdf.library.cornell.edu/individual/b3652730> . |
Example 3-ore: A Virtual Collection as an unordered collection of items using ORE Ontology's Aggregation with one item
Expand |
---|
title | Expand to see n-triples... |
---|
|
Code Block |
---|
language | none |
---|
title | n-triples |
---|
| <http://localhost:3000/individual/vc255> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.openarchives.org/ore/terms/Aggregation>
<http://localhost:3000/individual/vc255> <http://www.openarchives.org/ore/terms/aggregates> <http://da-rdf.library.cornell.edu/individual/b3652730> |
|
Code Block |
---|
language | none |
---|
title | Turtle using ORE ontology's Aggregation class |
---|
|
@prefix ore: <http://www.openarchives.org/ore/terms/> .
<http://localhost:3000/individual/vc255> a ore:Aggregation ;
ore:aggregates <http://da-rdf.library.cornell.edu/individual/b3652730> . |
Example 4-co: A Virtual Collection as an unordered collection of items using Collection Ontology's Bag with multiple unordered items
Expand |
---|
title | Expand to see n-triples... |
---|
|
Code Block |
---|
language | none |
---|
title | n-triples |
---|
| <http://localhost:3000/individual/vc255> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://purl.org/co#Bag> .
<http://localhost:3000/individual/vc255> <http://purl.org/co#size> "4"^^xsd:nonNegativeInteger .
<http://localhost:3000/individual/vc255> <http://purl.org/co#item> <http://localhost:3000/individual/vci262> .
<http://localhost:3000/individual/vc255> <http://purl.org/co#item> <http://localhost:3000/individual/vci263> .
<http://localhost:3000/individual/vc255> <http://purl.org/co#item> <http://localhost:3000/individual/vci264> .
<http://localhost:3000/individual/vc255> <http://purl.org/co#item> <http://localhost:3000/individual/vci265> .
<http://localhost:3000/individual/vci262> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://purl.org/co#Item> .
<http://localhost:3000/individual/vci262> <http://purl.org/co#itemContent> <http://da-rdf.library.cornell.edu/individual/b3652730> .
<http://localhost:3000/individual/vci263> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://purl.org/co#Item> .
<http://localhost:3000/individual/vci263> <http://purl.org/co#itemContent> <http://da-rdf.library.cornell.edu/individual/b3652234> .
<http://localhost:3000/individual/vci264> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://purl.org/co#Item> .
<http://localhost:3000/individual/vci264> <http://purl.org/co#itemContent> <http://da-rdf.library.cornell.edu/individual/b3652543> .
<http://localhost:3000/individual/vci265> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://purl.org/co#Item> .
<http://localhost:3000/individual/vci265> <http://purl.org/co#itemContent> <http://da-rdf.library.cornell.edu/individual/b3652884> .
|
|
Code Block |
---|
language | none |
---|
title | Turtle using Collection ontology's Bag class |
---|
|
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix co: <http://purl.org/co> .
<http://localhost:3000/individual/vc255> a co:Bag ;
co:size "4"^^xsd:nonNegativeInteger ;
co:item <http://localhost:3000/individual/vci262> ;
co:item <http://localhost:3000/individual/vci263> ;
co:item <http://localhost:3000/individual/vci264> ;
co:item <http://localhost:3000/individual/vci265> .
<http://localhost:3000/individual/vci262> a co:ListItem ;
co:itemContent <http://da-rdf.library.cornell.edu/individual/b3652730> .
<http://localhost:3000/individual/vci263> a co:ListItem ;
co:itemContent <http://da-rdf.library.cornell.edu/individual/b3652234> .
<http://localhost:3000/individual/vci264> a co:ListItem ;
co:itemContent <http://da-rdf.library.cornell.edu/individual/b3652543> .
<http://localhost:3000/individual/vci265> a co:ListItem ;
co:itemContent <http://da-rdf.library.cornell.edu/individual/b3652884> .
|
(Paolo) This can be simplified to (see https://code.google.com/p/collections-ontology/wiki/SetExample1) :
<http://localhost:3000/individual/vc255> a co:Bag ;
co:element <http://da-rdf.library.cornell.edu/individual/b3652730> ;
co:element <http://da-rdf.library.cornell.edu/individual/b3652234> ;
co:element <http://da-rdf.library.cornell.edu/individual/b3652543> ;
co:element <http://da-rdf.library.cornell.edu/individual/b3652884> .
(Lynette) My understanding of the difference between Set and Bag is that Set cannot have repeating items, but Bag can.
- Can set have repeating items?
- Do we need to have repeating items?
- Use Case: A professor creates a reading list which includes a work early in the semester and then repeats it later in the semester.
(Paolo) I apologize that should have been a co:Set to be clearer. For Bags you need to have an instance of Item to support for repeated elements. Once you flatten down to co:element the repeated items become one. The idea of the co:element (defined as chain) in general is to provide a shortcut to the elements. In that case we are interested in finding the existence (one of them), the repetitions are irrelevant at that level.
(Rebecca) I see on the description of the Collections Ontology that "the Collections Ontology (CO) defines unordered collections (Set and Bag) and ordered collections (or List)." It seems awkward to select an ontology in which the type of the collection has to change if ordering is added to an originally unordered collection, or vice versa. That seems to me an advantage of the ORE ontology.
(Paolo) that is a fair point but the description is not accurate, the approach has been described in the paper, here it is:
The relationships between the mathematical entities and those defined by Collections Ontology - and detailed in the following sections of the paper - can be defined as follow:
co:Set ⊂ Set
co:Bag ⊂ Bag
co:Set ∩ co:Bag = ∅
co:List = co:Bag ∩ Sequence
There are precise pragmatic reasons motivating this design choice. First of all, we chose not to model the mathematical identity function in CO for a specific reason: to allow one to use CO even when modelling scenarios that describe “collections in terms of the constructive boundaries of those plural entities that form themselves a whole". Therefore, it is possible to consider two sets of people, composed exactly by the same people, as two different research groups without contradictions. .... Second, from an implementation standpoint, the data structures managing co:Set and co:Bag are very different.
In other words, if you define a Bag and you add ordering you get a List. See axioms here: http://www.essepuntato.it/lode/owlapi/http://purl.org/co/#d4e499
Set is all another story though. That is correct.
(Rob) The repeating items case makes ORE very strange, as it means creating two proxies for the same resource such that it can be in the chain twice.
<x> a ore:Aggregation ;
ore:aggregates <a> ; // should be repeated at the end
ore:aggregates <b> ;
ore:aggregates <c> .
<p1> a ore:Proxy ;
ore:proxyFor <a> ;
ore:proxyIn <x> ;
iana:next <p2> .
<p2> a ore:Proxy ;
ore:proxyFor <b> ;
ore:proxyIn <x> ;
iana:next <p3> .
<p3> a ore:Proxy ;
ore:proxyFor <c> ;
ore:proxyIn <x> ;
iana:next <p4> .
<p4> a ore:Proxy ;
ore:proxyFor <a> ;
ore:proxyIn <x> .
(Rebecca) I don't actually find this so strange. If proxies are the means to specify relationships, such as sequencing, among the aggregated resources, then if an aggregated resource has more than one relationship to other resources, as in occurring at multiple positions in a sequence, it seems natural that it would have a proxy for each.
(Paolo) I do find it strange but not 'that strange'. In CO you can infer the top part so the co:element will have only three objects (with no repetition). But the actual declarative structure will list all of them.
Example 4-ore: A Virtual Collection as an unordered collection of items using ORE Ontology's Aggregation with multiple unordered items
Expand |
---|
title | Expand to see n-triples... |
---|
|
| Turtle | | <http://localhost:3000/individual/vc255> | @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax | -ns#> .
@prefix co: purlco> .
<http://localhost:3000/virtualcollection/changeme:155> a co:List ;
co:size "4"^^xsd:nonNegativeInteger ;
co:firstItem ore/terms/Aggregation> .
<http://localhost:3000/ | virtualcollection/item/changeme:156> ;
co:item individual/vc255> <http:// | localhost:3000/virtualcollection/item/changeme:156> ;
co:item <http://localhost:3000/virtualcollection/item/changeme:157> ;
co:item www.openarchives.org/ore/terms/aggregates> <http://da-rdf.library.cornell.edu/individual/b3652730> .
<http://localhost:3000/ | virtualcollection/item/changeme:158> ;
co:item individual/vc255> <http:// | localhost:3000/virtualcollection/item/changeme:159> ;
co:lastItem <http://localhost:3000/virtualcollection/item/changeme:159> .
www.openarchives.org/ore/terms/aggregates> <http://da-rdf.library.cornell.edu/individual/b3652234> .
<http://localhost:3000/ | virtualcollection/item/changeme:156> a co:ListItem ;
co:index "1"^^xsd:positiveInteger ;
co:itemContent individual/vc255> <http://www.openarchives.org/ore/terms/aggregates> <http://da-rdf.library.cornell.edu/individual/ | b3652730> |
Code Block |
---|
language | none |
---|
title | Turtle using ORE ontology's Aggregation class |
---|
|
@prefix ore: <http://www.openarchives.org/ore/terms/> .
@prefix iana: <http://www.iana.org/assignments/relation/> .
;
co:nextItem <http://localhost:3000/virtualcollection/item/changeme:157> .
<http://localhost:3000/virtualcollection/item/changeme:157>individual/vc255> a coore:ListItemAggregation ;
coore:index "2"^^xsd:positiveIntegeraggregates <http://da-rdf.library.cornell.edu/individual/b3652730> ;
coore:itemContentaggregates <http://da-rdf.library.cornell.edu/individual/b3652234> ;
coore:nextItem aggregates <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> .
|
QUESTIONS:
...
da-rdf.library.cornell.edu/individual/b3652543> .
|
Expand |
---|
title | Reconciled Questions |
---|
|
- Should Virtual Collection's type be a subclass of co:List instead of a co:List?
- Discussion:
- If so, what is the type? Perhaps: Subclass of co:List Ontology to be defined by ontology group.
- Is it LD4L specific? Consensus: YES to be defined by ontology group.
- How is LD4L defining new types? Naming convention, namespace, etc.? Final definitions by ontology group.
- ANSWER:
- NO - from Rob in Ontology group
- Reason - When only adding a few extra properties from other existing ontologies, you do not make a new subclass to formally specify that those properties are expected in the subclass. Only create a new subclass if new properties not existing in another ontology are required.
|
...
...
Expand |
---|
title | Expand to see n-triples... |
---|
|
Code Block |
---|
language | none |
---|
title | n-triples |
---|
| <http://localhost:3000/ | virtualcollectionchangeme:155/item/changeme:159/vci165/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/individual/vci165/comment/changeme:93> <http://www.w3.org/ns/oa#hasTarget> <http://localhost:3000/ | virtualcollection/item/changeme:156>individual/vci162> .
<http://localhost:3000/ | virtualcollectionchangeme:155/item/changeme:159/vci165/comment/changeme:93> <http://www.w3.org/ns/oa#hasBody> <http://localhost:3000/ | annotations/bodies/3652730_changeme:93>individual/ab205> .
<http | ://localhost3000virtualcollectionchangeme155itemchangeme:159vci165/comment/changeme:93> <http://www.w3.org/ns/oa#annotatedBy> | <??? URI WITH NETID ???> <http://vivo.cornell.edu/individual/individual24416> .
<http://localhost:3000/ | virtualcollection/changeme:155/item/changeme:159/individual/vci165/comment/changeme:93> <http://www.w3.org/ns/oa#annotatedAt> "2014-07-21T12:00:00Z"^^xsd:dateTime .
<http://localhost:3000/ | virtualcollection/changeme:155/item/changeme:159/individual/vci165/comment/changeme:93> <http://www.w3.org/ns/oa#motivatedBy> <http://www.w3.org/ns/oa#commenting> .
<http://localhost:3000/ | virtualcollection/changeme:155/item/changeme:159/individual/vci165/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:159individual/vci165/comment/changeme:93/body> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2011/content#ContentAsText> .
<http://localhost:3000/individual/vci165/comment/changeme:93/body> <http://www.w3.org/2011/content#chars> "This is my favorite book." .
<http://localhost:3000/ | virtualcollectionindividual/vci165/comment/changeme:93/body> <http://purl.org/dc/terms/format> "text/plain" .
|
|
Code Block |
---|
|
@prefix rdf: 155/item/changeme:159/comment/changeme:93/body> <http://www.w3.org/2011/content#chars> "This is my favorite book." .
1999/02/22-rdf-syntax-ns#> .
@prefix dcterms: <http://localhost:3000/virtualcollection/changeme:155/item/changeme:159/comment/changeme:93/body>purl.org/dc/terms> .
@prefix dctypes: <http://purl.org/dc/terms/format> "text/plain"dcmitype> .
|
Code Block |
---|
|
@prefix rdfcnt: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>2011/content#> .
@prefix dctermsoa: <http://purlwww.w3.org/dcns/terms>oa> .
@prefix dctypes:
<http://localhost:3000/individual/cm93> a oa:Annotation ;
oa:hasTarget <http://purl.org/dc/dcmitype> .
@prefix cnt: localhost:3000/individual/vci162> ;
oa:hasBody <http://www.w3.org/2011/content#> .
@prefixlocalhost:3000/individual/ab205> ;
oa:annotatedBy <http://wwwvivo.w3cornell.orgedu/nsindividual/oa>individual24416> .;
<http://localhost:3000/virtualcollection/changeme:155/item/changeme:159/comment/changeme:93> a oa:Annotation ;
oa:hasTarget oa:annotatedAt "2014-07-21T12:00:00Z"^^xsd:dateTime
oa:motivatedBy oa:commenting .
<http://localhost:3000/virtualcollection/item/changeme:156> ;
oa:hasBody <http://localhost:3000/annotations/bodies/3652730_changeme:93>individual/ab205> a dctypes:Text, cnt:ContentAsText ;
oacnt:annotatedBy <??? URI WITH NETID ???> ;
oa:annotatedAt "2014-07-21T12:00:00Z"^^xsd:dateTime
oa:motivatedBy oa:commenting .
<httpchars "This is my favorite book." ;
dcterms:format "text/plain" .
|
...
URI Generation
BaseURI
Environment | Base URI |
---|
development | http://localhost:3000/individual/ |
testing | TBA |
production | TBA |
Identifier
_BASE_URI_ + _CONCEPT_ABBR_CODE_ + _GENERATED_NUMBER_
CONCEPT | ABBR_CODE | Example URI | Comments |
---|
Virtual Collection | vc | http://localhost:3000/ |
...
individual/vc155 | |
Virtual Collection Item | vci | http://localhost:3000/individual/vci262 | |
Comment | cm | http://localhost:3000/individual/cm394 | |
Tag | tg | http://localhost:3000/individual/tg328 | |
Annotation Body | ab | http://localhost:3000/individual/ab325 | |
QUESTIONS:
- Is it best practice to use the format specified for identifier?
- The alternative could be to use the URL for the webpage with a .nt extension if a webpage representation exists AND use the above format if a webpage does not exist.
- OR force the webpage URL to match this format whenever possible AND continue to use the .nt extension to show the triples.
- We can punt the final decision on this question until implementation is further along.
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:
...
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. min