more about CreativeCommons license vocabulary

pull/1/head
Michael Christen 13 years ago
parent c67c30db34
commit ee9aae5cc0

@ -41,12 +41,20 @@ public enum CreativeCommons implements Vocabulary {
// License Properties // License Properties
permits(new Literal[]{ permits(new Literal[]{
PermitLiteral.Reproduction, PermitLiteral.Reproduction,
PermitLiteral.Distribution, PermitLiteral.Distribution,
PermitLiteral.DerivativeWorks, PermitLiteral.DerivativeWorks,
PermitLiteral.Sharing}), PermitLiteral.Sharing}),
requires, requires(new Literal[]{
prohibits, RequirementLiteral.Notice,
RequirementLiteral.Attribution,
RequirementLiteral.ShareAlike,
RequirementLiteral.SourceCode,
RequirementLiteral.Copyleft,
RequirementLiteral.LesserCopyleft}),
prohibits(new Literal[]{
ProhibitionLiteral.CommercialUse,
ProhibitionLiteral.HighIncomeNationUse}),
jurisdiction, jurisdiction,
legalcode, legalcode,
deprecatedOn, deprecatedOn,
@ -58,13 +66,12 @@ public enum CreativeCommons implements Vocabulary {
attributionURL, attributionURL,
useGuidelines; useGuidelines;
enum PermitLiteral implements Literal { enum PermitLiteral implements Literal {
Reproduction("Reproduction", null, ".*"), Reproduction("Reproduction", "http://creativecommons.org/ns#Permission", ".*"),
Distribution("Distribution", null, ".*"), Distribution("Distribution", "http://creativecommons.org/ns#Permission", ".*"),
DerivativeWorks("Derivative Works",null, ".*"), DerivativeWorks("Derivative Works", "http://creativecommons.org/ns#Permission", ".*"),
Sharing("Sharing", null, ".*"); Sharing("Sharing", "http://creativecommons.org/ns#Permission", ".*");
String terminal; String terminal;
MultiProtocolURI subject; MultiProtocolURI subject;
@ -84,22 +91,84 @@ public enum CreativeCommons implements Vocabulary {
} }
@Override @Override
public String getTerminal() { public String getTerminal() { return this.terminal; }
return this.terminal;
} @Override
public MultiProtocolURI getSubject() { return this.subject; }
@Override @Override
public MultiProtocolURI getSubject() { public Pattern getDiscoveryPattern() { return this.discoveryPattern; }
return this.subject; }
enum RequirementLiteral implements Literal {
Notice("Notice", "http://creativecommons.org/ns#Requirement", ".*"),
Attribution("Attribution", "http://creativecommons.org/ns#Requirement", ".*"),
ShareAlike("Share Alike", "http://creativecommons.org/ns#Requirement", ".*"),
SourceCode("Source Code", "http://creativecommons.org/ns#Requirement", ".*"),
Copyleft("Copyleft", "http://creativecommons.org/ns#Requirement", ".*"),
LesserCopyleft("Lesser Copyleft", "http://creativecommons.org/ns#Requirement", ".*");
String terminal;
MultiProtocolURI subject;
Pattern discoveryPattern;
private RequirementLiteral(
String terminal,
String subject,
String discoveryPattern) {
this.terminal = terminal;
try {
this.subject = subject == null ? null : new MultiProtocolURI(subject);
} catch (MalformedURLException e) {
this.subject = null;
}
this.discoveryPattern = Pattern.compile(discoveryPattern == null ? ".*" : discoveryPattern);
} }
@Override
public String getTerminal() { return this.terminal; }
@Override
public MultiProtocolURI getSubject() { return this.subject; }
@Override @Override
public Pattern getDiscoveryPattern() { public Pattern getDiscoveryPattern() { return this.discoveryPattern; }
return this.discoveryPattern; }
enum ProhibitionLiteral implements Literal {
CommercialUse("Commercial Use", "http://creativecommons.org/ns#Prohibition", ".*"),
HighIncomeNationUse("High Income Nation Use", "http://creativecommons.org/ns#Prohibition", ".*");
String terminal;
MultiProtocolURI subject;
Pattern discoveryPattern;
private ProhibitionLiteral(
String terminal,
String subject,
String discoveryPattern) {
this.terminal = terminal;
try {
this.subject = subject == null ? null : new MultiProtocolURI(subject);
} catch (MalformedURLException e) {
this.subject = null;
}
this.discoveryPattern = Pattern.compile(discoveryPattern == null ? ".*" : discoveryPattern);
} }
@Override
public String getTerminal() { return this.terminal; }
@Override
public MultiProtocolURI getSubject() { return this.subject; }
@Override
public Pattern getDiscoveryPattern() { return this.discoveryPattern; }
} }
public final static String IDENTIFIER = "http://dublincore.org/documents/2010/10/11/dces/"; public final static String IDENTIFIER = "http://creativecommons.org/ns#";
public final static String PREFIX = "cc"; public final static String PREFIX = "cc";
private final String predicate; private final String predicate;

Loading…
Cancel
Save