You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 66 Next »


  Planning | Description | Requirements | UI Mockup |  Triples Examples


Table of Contents


Ontologies

The following is a list of all ontologies used by the Triple Examples.

NamePrefixURLDetailsComments
RDF
rdf
http://www.w3.org/1999/02/22-rdf-syntax-ns#
specification 
RDF Schemardfs
http://www.w3.org/2000/01/rdf-schema#
specification 
Dublin Coredc
http://purl.org/dc/elements/1.1/
specification 
Dublin Core Termsdcterms
http://purl.org/dc/terms
specificationRequired by OA
Dublin Core Typesdctype
http://purl.org/dc/dcmitype
specificationRequired by OA
Contentcnt
http://www.w3.org/2011/content#
specificationRequired by OA
OREorehttp://www.openarchives.org/ore/1.0/vocabulary#otherRelationships specificationRecommended as an alternative to the Collections ontology by Rob.  Represents both ordered and unordered items using the Aggregation class.
Collectionsco
http://purl.org/co

specification,

examples

Can represent unordered items using the Bag class and ordered items using the List class. 
Open Annotationoa
http://www.w3.org/ns/oa
specification 
Friend of a Friendfoaf
http://xmlns.com/foaf/0.1
specificationAlso used by OA

 

Virtual Collections

Virtual Collection's owner

Note: The owner is represented as dc:creator in the Virtual Collection's metadata.

n-triples
<http://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> .
Turtle
@prefix foaf:    <http://xmlns.com/foaf/0.1> .

<http://vivo.cornell.edu/individual/individual24416> a foaf:Person, foaf:Agent .

NOTE:

  • ORE  uses foaf:Agent as the dc:creator.

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

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> "These are resources I am gathering together for personal use." .
<http://localhost:3000/individual/vc155> <http://purl.org/dc/elements/1.1/creator> <http://vivo.cornell.edu/individual/individual24416> .
Turtle
@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...
  • What properties should be used to express the virtual collection metadata? Possibilities and answer as Selected Property…

    ConceptPotential PropertiesSelected PropertyComments
     Titlerdfs:label, dc:title, dcterms:titledcterms:titleBased on ORE ontology specification
     Descriptionrdfs:comment, dc:description, dcterms:descriptiondcterms:descriptionBased on ORE ontology specification
     Ownerdc:creator, dcterms:creatordc:creatorBased on ORE ontology specification


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
n-triples
<http://localhost:3000/individual/vc155> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://purl.org/co#List> .
<http://localhost:3000/individual/vc155> <http://purl.org/co#size> "1"^^xsd:nonNegativeInteger .
<http://localhost:3000/individual/vc155> <http://purl.org/co#firstItem> <http://localhost:3000/individual/vci162> .
<http://localhost:3000/individual/vc155> <http://purl.org/co#item> <http://localhost:3000/individual/vci162> .
<http://localhost:3000/individual/vc155> <http://purl.org/co#lastItem> <http://localhost:3000/individual/vci162> .

<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> .


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       "1"^^xsd:nonNegativeInteger ;
  co:firstItem  <http://localhost:3000/individual/vci162> ;
  co:item       <http://localhost:3000/individual/vci162> ;
  co:lastItem   <http://localhost:3000/individual/vci162> .
 
<http://localhost:3000/individual/vci162> a co:ListItem
  co:index        "1"^^xsd:positiveInteger ;
  co:itemContent  <http://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
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> .


Turtle using ORE ontology's Aggregation class
@prefix ore:     <http://www.openarchives.org/ore/terms/> .
  
<http://localhost:3000/individual/vc155> a ore:Aggregation ;
  ore:aggregates <http://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
n-triples
<http://localhost:3000/individual/vc155> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://purl.org/co#List> .
<http://localhost:3000/individual/vc155> <http://purl.org/co#size> "4"^^xsd:nonNegativeInteger .
<http://localhost:3000/individual/vc155> <http://purl.org/co#firstItem> <http://localhost:3000/individual/vci162> .
<http://localhost:3000/individual/vc155> <http://purl.org/co#item> <http://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#item> <http://localhost:3000/individual/vci164> .
<http://localhost:3000/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> .


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
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> .

 

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
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> .
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
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>
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
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> .

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 me 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.

 

Example 4-ore:  A Virtual Collection as an unordered collection of items using ORE Ontology's Aggregation with multiple unordered items
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> .
<http://localhost:3000/individual/vc255> <http://www.openarchives.org/ore/terms/aggregates> <http://da-rdf.library.cornell.edu/individual/b3652234> .
<http://localhost:3000/individual/vc255> <http://www.openarchives.org/ore/terms/aggregates> <http://da-rdf.library.cornell.edu/individual/b3652543> .
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/vc255> 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> .
  • 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.

 

 


Comments

Comments as Free Form Text Annotation

n-triples
<http://localhost:3000/individual/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/individual/vci165/comment/changeme:93> <http://www.w3.org/ns/oa#hasTarget> <http://localhost:3000/individual/vci162> .
<http://localhost:3000/individual/vci165/comment/changeme:93> <http://www.w3.org/ns/oa#hasBody> <http://localhost:3000/individual/ab205> .
<http://localhost:3000/individual/vci165/comment/changeme:93> <http://www.w3.org/ns/oa#annotatedBy> <http://vivo.cornell.edu/individual/individual24416> .
<http://localhost:3000/individual/vci165/comment/changeme:93> <http://www.w3.org/ns/oa#annotatedAt> "2014-07-21T12:00:00Z"^^xsd:dateTime .
<http://localhost:3000/individual/vci165/comment/changeme:93> <http://www.w3.org/ns/oa#motivatedBy> <http://www.w3.org/ns/oa#commenting> .

<http://localhost:3000/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/individual/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/individual/vci165/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 dctypes:   <http://purl.org/dc/dcmitype> .
@prefix cnt:      <http://www.w3.org/2011/content#> .
@prefix oa:       <http://www.w3.org/ns/oa> .
 
<http://localhost:3000/individual/cm93> a oa:Annotation ;
  oa:hasTarget <http://localhost:3000/individual/vci162> ;
  oa:hasBody <http://localhost:3000/individual/ab205> ;
  oa:annotatedBy <http://vivo.cornell.edu/individual/individual24416> ;
  oa:annotatedAt "2014-07-21T12:00:00Z"^^xsd:dateTime
  oa:motivatedBy oa:commenting .

<http://localhost:3000/individual/ab205> a dctypes:Text, cnt:ContentAsText ;
  cnt:chars      "This is my favorite book." ;
  dcterms:format "text/plain" .

 


URI Generation

BaseURI

EnvironmentBase URI
developmenthttp://localhost:3000/individual/
testingTBA
productionTBA

 

Identifier

      _BASE_URI_ + _CONCEPT_ABBR_CODE_ + _GENERATED_NUMBER_

CONCEPTABBR_CODEExample URIComments
Virtual Collectionvc
http://localhost:3000/individual/vc155
 
Virtual Collection Itemvci
http://localhost:3000/individual/vci262
 
Commentcm
http://localhost:3000/individual/cm394
 
Tagtg
http://localhost:3000/individual/tg328
 
Annotation Bodyab
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.

 


Access Thoughts

QUESTIONS:

  • What method is used to protect private Virtual Collections?
    • Option 1:  maintain two triple stores: 1) private, 2) public
    • Option 2:  use named graphs 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
  • 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

  • No labels