reddy 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/HACKNOTES +2 -0
- data/History.txt +3 -0
- data/Manifest.txt +80 -0
- data/README.rdoc +48 -0
- data/README.txt +62 -0
- data/Rakefile +67 -0
- data/lib/reddy.rb +8 -0
- data/lib/reddy/bnode.rb +70 -0
- data/lib/reddy/exceptions/about_each_exception.rb +2 -0
- data/lib/reddy/exceptions/uri_relative_exception.rb +2 -0
- data/lib/reddy/graph.rb +182 -0
- data/lib/reddy/libxml_hacks.rb +6 -0
- data/lib/reddy/literal.rb +211 -0
- data/lib/reddy/n3_grammar.treetop +129 -0
- data/lib/reddy/n3parser.rb +145 -0
- data/lib/reddy/namespace.rb +73 -0
- data/lib/reddy/rdfaparser.rb +63 -0
- data/lib/reddy/rdfxmlparser.rb +254 -0
- data/lib/reddy/rexml_hacks.rb +97 -0
- data/lib/reddy/triple.rb +95 -0
- data/lib/reddy/uriref.rb +66 -0
- data/reddy.gemspec +50 -0
- data/spec/bnode_spec.rb +29 -0
- data/spec/graph_spec.rb +138 -0
- data/spec/literal_spec.rb +142 -0
- data/spec/n3parser_spec.rb +86 -0
- data/spec/namespaces_spec.rb +44 -0
- data/spec/parser_spec.rb +391 -0
- data/spec/rdfa_parser_spec.rb +28 -0
- data/spec/rexml_hacks_spec.rb +99 -0
- data/spec/triple_spec.rb +108 -0
- data/spec/uriref_spec.rb +96 -0
- data/test/longtests_spec.rb +25 -0
- data/test/n3_tests/lcsh/sh85062913.n3 +41 -0
- data/test/n3_tests/lcsh/sh85062913.nt +21 -0
- data/test/n3_tests/lcsh/sh85082139.n3 +157 -0
- data/test/n3_tests/lcsh/sh85082139.nt +79 -0
- data/test/n3_tests/lcsh/sh85118553.n3 +123 -0
- data/test/n3_tests/lcsh/sh85118553.nt +63 -0
- data/test/n3_tests/misc/on_now-01.n3 +30 -0
- data/test/n3_tests/misc/on_now-01.nt +15 -0
- data/test/n3_tests/n3p/simple-01.n3 +1 -0
- data/test/n3_tests/n3p/simple-01.nt +0 -0
- data/test/n3_tests/n3p/simple-02.n3 +4 -0
- data/test/n3_tests/n3p/simple-02.nt +0 -0
- data/test/n3_tests/n3p/simple-03.n3 +5 -0
- data/test/n3_tests/n3p/simple-03.nt +1 -0
- data/test/n3_tests/n3p/simple-04.n3 +6 -0
- data/test/n3_tests/n3p/simple-04.nt +3 -0
- data/test/n3_tests/n3p/simple-05.n3 +7 -0
- data/test/n3_tests/n3p/simple-05.nt +2 -0
- data/test/n3_tests/n3p/simple-06.n3 +6 -0
- data/test/n3_tests/n3p/simple-06.nt +4 -0
- data/test/n3_tests/n3p/simple-07.n3 +7 -0
- data/test/n3_tests/n3p/simple-07.nt +6 -0
- data/test/perf_test/test.rb +11 -0
- data/test/perf_test/tommorris.rdf +2267 -0
- data/test/rdf_tests/cc197bad-dc9c-440d-a5b5-d52ba2e14234.nt +24 -0
- data/test/rdf_tests/cc197bad-dc9c-440d-a5b5-d52ba2e14234.rdf +46 -0
- data/test/rdf_tests/tm_001.nt +1 -0
- data/test/rdf_tests/tm_001.rdf +7 -0
- data/test/rdf_tests/xml-literal-mixed.nt +7 -0
- data/test/rdf_tests/xml-literal-mixed.rdf +15 -0
- data/test/ruby_fundamentals.spec.rb +17 -0
- data/test/test_helper.rb +2 -0
- data/test/test_reddy.rb +11 -0
- data/test/test_uris.rb +13 -0
- data/test/xml.rdf +6 -0
- metadata +198 -0
@@ -0,0 +1,28 @@
|
|
1
|
+
require 'lib/reddy'
|
2
|
+
|
3
|
+
# Specification: http://www.w3.org/TR/rdfa-syntax/
|
4
|
+
# docs:
|
5
|
+
# - http://www.xml.com/pub/a/2007/02/14/introducing-rdfa.html
|
6
|
+
# - http://www.w3.org/TR/xhtml-rdfa-primer/
|
7
|
+
# W3C test suite: http://www.w3.org/2006/07/SWD/RDFa/testsuite/xhtml1-testcases/
|
8
|
+
|
9
|
+
describe "RDFa parser" do
|
10
|
+
it "should be able to pass xhtml1-0001.xhtml" do
|
11
|
+
sampledoc = <<-EOF;
|
12
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
13
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd">
|
14
|
+
<html xmlns="http://www.w3.org/1999/xhtml"
|
15
|
+
xmlns:dc="http://purl.org/dc/elements/1.1/">
|
16
|
+
<head>
|
17
|
+
<title>Test 0001</title>
|
18
|
+
</head>
|
19
|
+
<body>
|
20
|
+
<p>This photo was taken by <span class="author" about="photo1.jpg" property="dc:creator">Mark Birbeck</span>.</p>
|
21
|
+
</body>
|
22
|
+
</html>
|
23
|
+
EOF
|
24
|
+
|
25
|
+
parser = RdfaParser.new(sampledoc, uri = "http://www.w3.org/2006/07/SWD/RDFa/testsuite/xhtml1-testcases/0001.xhtml")
|
26
|
+
parser.graph.size.should == 1
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,99 @@
|
|
1
|
+
require 'lib/reddy'
|
2
|
+
require 'rexml/document'
|
3
|
+
#require 'lib/rexml_hacks'
|
4
|
+
|
5
|
+
describe "REXML" do
|
6
|
+
before do
|
7
|
+
string = <<-EOF;
|
8
|
+
<?xml version="1.0" ?>
|
9
|
+
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:ex="http://example.org/" xml:lang="en" xml:base="http://example.org/">
|
10
|
+
<rdf:Description>
|
11
|
+
<foo>bar</foo>
|
12
|
+
<bar:bar xmlns:bar="http://foo.com/">foo</bar:bar>
|
13
|
+
<ex:ex>fap</ex:ex>
|
14
|
+
</rdf:Description>
|
15
|
+
</rdf:RDF>
|
16
|
+
EOF
|
17
|
+
|
18
|
+
@doc = REXML::Document.new(string)
|
19
|
+
|
20
|
+
string2 = <<-EOF;
|
21
|
+
<?xml version="1.0" ?>
|
22
|
+
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:ex="http://example.org/">
|
23
|
+
<rdf:Description>
|
24
|
+
<foo>bar</foo>
|
25
|
+
<bar:bar xmlns:bar="http://foo.com/">foo</bar:bar>
|
26
|
+
<ex:ex>fap</ex:ex>
|
27
|
+
</rdf:Description>
|
28
|
+
</rdf:RDF>
|
29
|
+
EOF
|
30
|
+
@doc2 = REXML::Document.new(string2)
|
31
|
+
end
|
32
|
+
|
33
|
+
it "should have support for xml:base" do
|
34
|
+
@doc.root.elements[1].base?.should == true
|
35
|
+
@doc.root.elements[1].base.should == "http://example.org/"
|
36
|
+
@doc2.root.elements[1].base?.should_not == true
|
37
|
+
@doc2.root.elements[1].base.should == nil
|
38
|
+
end
|
39
|
+
|
40
|
+
it "should have support for xml:lang" do
|
41
|
+
@doc.root.elements[1].lang?.should == true
|
42
|
+
@doc.root.elements[1].lang.should == "en"
|
43
|
+
@doc2.root.elements[1].lang?.should_not == true
|
44
|
+
@doc2.root.elements[1].lang.should == nil
|
45
|
+
end
|
46
|
+
|
47
|
+
it "should allow individual writing-out of XML" do
|
48
|
+
# puts @doc.root.elements[1].write
|
49
|
+
|
50
|
+
sampledoc = <<-EOF;
|
51
|
+
<?xml version="1.0"?>
|
52
|
+
|
53
|
+
<!--
|
54
|
+
Copyright World Wide Web Consortium, (Massachusetts Institute of
|
55
|
+
Technology, Institut National de Recherche en Informatique et en
|
56
|
+
Automatique, Keio University).
|
57
|
+
|
58
|
+
All Rights Reserved.
|
59
|
+
|
60
|
+
Please see the full Copyright clause at
|
61
|
+
<http://www.w3.org/Consortium/Legal/copyright-software.html>
|
62
|
+
|
63
|
+
Description: Visibly used namespaces must be included in XML
|
64
|
+
Literal values. Treatment of namespaces that are not
|
65
|
+
visibly used (e.g. rdf: in this example) is implementation
|
66
|
+
dependent. Based on example from Issues List.
|
67
|
+
|
68
|
+
|
69
|
+
$Id: test001.rdf,v 1.2 2002/11/22 13:52:15 jcarroll Exp $
|
70
|
+
|
71
|
+
-->
|
72
|
+
<rdf:RDF xmlns="http://www.w3.org/1999/xhtml"
|
73
|
+
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
74
|
+
xmlns:html="http://NoHTML.example.org"
|
75
|
+
xmlns:my="http://my.example.org/">
|
76
|
+
<rdf:Description rdf:ID="John_Smith">
|
77
|
+
<my:Name rdf:parseType="Literal">
|
78
|
+
<html:h1>
|
79
|
+
<b>John</b>
|
80
|
+
</html:h1>
|
81
|
+
</my:Name>
|
82
|
+
|
83
|
+
</rdf:Description>
|
84
|
+
</rdf:RDF>
|
85
|
+
EOF
|
86
|
+
doc2 = REXML::Document.new(sampledoc)
|
87
|
+
expectedoutput_str = "<html:h1 xmlns:html=\'http://NoHTML.example.org\' xmlns:my=\'http://my.example.org/\' xmlns:rdf=\'http://www.w3.org/1999/02/22-rdf-syntax-ns#\'>\n <b xmlns=\'http://www.w3.org/1999/xhtml\'>John</b>\n </html:h1>"
|
88
|
+
expectedout = REXML::Document.new(expectedoutput_str)
|
89
|
+
doc2.root.elements[1].elements[1].elements[1].write_reddy == expectedout.root
|
90
|
+
|
91
|
+
sampledoc3 = <<-EOF;
|
92
|
+
<?xml version="1.0"?><RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"><Description><x:li xmlns:x="http://example.org/notRDF" /></Description></RDF>
|
93
|
+
EOF
|
94
|
+
|
95
|
+
doc3 = REXML::Document.new(sampledoc3)
|
96
|
+
out3 = REXML::Document.new(doc3.root.elements[1].write_reddy)
|
97
|
+
out3.root.class == REXML::Element
|
98
|
+
end
|
99
|
+
end
|
data/spec/triple_spec.rb
ADDED
@@ -0,0 +1,108 @@
|
|
1
|
+
require 'lib/reddy'
|
2
|
+
|
3
|
+
describe "Triples" do
|
4
|
+
it "should have a subject" do
|
5
|
+
f = Triple.new(BNode.new, URIRef.new('http://xmlns.com/foaf/0.1/knows'), BNode.new)
|
6
|
+
f.subject.class.should == BNode
|
7
|
+
# puts f.to_ntriples
|
8
|
+
end
|
9
|
+
|
10
|
+
it "should require that the subject is a URIRef or BNode" do
|
11
|
+
lambda do
|
12
|
+
Triple.new(Literal.new("foo"), URIRef.new("http://xmlns.com/foaf/0.1/knows"), BNode.new)
|
13
|
+
end.should raise_error
|
14
|
+
end
|
15
|
+
|
16
|
+
it "should require that the predicate is a URIRef" do
|
17
|
+
lambda do
|
18
|
+
Triple.new(BNode.new, BNode.new, BNode.new)
|
19
|
+
end.should raise_error
|
20
|
+
end
|
21
|
+
|
22
|
+
it "should require that the object is a URIRef, BNode, Literal or Typed Literal" do
|
23
|
+
lambda do
|
24
|
+
Triple.new(BNode.new, URIRef.new("http://xmlns.com/foaf/0.1/knows"), [])
|
25
|
+
end.should raise_error
|
26
|
+
end
|
27
|
+
|
28
|
+
it "should emit an NTriple" do
|
29
|
+
s = URIRef.new("http://tommorris.org/foaf#me")
|
30
|
+
p = URIRef.new("http://xmlns.com/foaf/0.1/name")
|
31
|
+
o = Literal.untyped("Tom Morris")
|
32
|
+
f = Triple.new(s,p,o)
|
33
|
+
|
34
|
+
f.to_ntriples.should == "<http://tommorris.org/foaf#me> <http://xmlns.com/foaf/0.1/name> \"Tom Morris\" ."
|
35
|
+
end
|
36
|
+
|
37
|
+
describe "#coerce_subject" do
|
38
|
+
it "should accept a URIRef" do
|
39
|
+
ref = URIRef.new('http://localhost/')
|
40
|
+
Triple.coerce_subject(ref).should == ref
|
41
|
+
end
|
42
|
+
|
43
|
+
it "should accept a BNode" do
|
44
|
+
node = BNode.new('a')
|
45
|
+
Triple.coerce_subject(node).should == node
|
46
|
+
end
|
47
|
+
|
48
|
+
it "should accept a uri string and make URIRef" do
|
49
|
+
Triple.coerce_subject('http://localhost/').should == URIRef.new('http://localhost/')
|
50
|
+
end
|
51
|
+
|
52
|
+
it "should accept an Addressable::URI object and make URIRef" do
|
53
|
+
Triple.coerce_subject(Addressable::URI.parse("http://localhost/")).should == URIRef.new("http://localhost/")
|
54
|
+
end
|
55
|
+
|
56
|
+
it "should turn an other string into a BNode" do
|
57
|
+
Triple.coerce_subject('foo').should == BNode.new('foo')
|
58
|
+
end
|
59
|
+
|
60
|
+
it "should raise an InvalidSubject exception with any other class argument" do
|
61
|
+
lambda do
|
62
|
+
Triple.coerce_subject(Object.new)
|
63
|
+
end.should raise_error(Reddy::Triple::InvalidSubject)
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
describe "#coerce_predicate" do
|
68
|
+
it "should make a string into a URI ref" do
|
69
|
+
Triple.coerce_predicate("http://localhost/").should == URIRef.new('http://localhost/')
|
70
|
+
end
|
71
|
+
|
72
|
+
it "should leave a URIRef alone" do
|
73
|
+
ref = URIRef.new('http://localhost/')
|
74
|
+
Triple.coerce_predicate(ref).should == ref
|
75
|
+
end
|
76
|
+
|
77
|
+
it "should barf on an illegal uri string" do
|
78
|
+
lambda do
|
79
|
+
Triple.coerce_predicate("I'm just a soul whose intention is good")
|
80
|
+
end.should raise_error(Reddy::Triple::InvalidPredicate)
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
describe "#coerce_object" do
|
85
|
+
it "should leave URIRefs alone" do
|
86
|
+
ref = URIRef.new("http://localhost/")
|
87
|
+
Triple.coerce_object(ref).should == ref
|
88
|
+
end
|
89
|
+
|
90
|
+
it "should accept an Addressable::URI object and make URIRef" do
|
91
|
+
Triple.coerce_object(Addressable::URI.parse("http://localhost/")).should == URIRef.new("http://localhost/")
|
92
|
+
end
|
93
|
+
|
94
|
+
it "should leave BNodes alone" do
|
95
|
+
ref = BNode.new()
|
96
|
+
Triple.coerce_object(ref).should == ref
|
97
|
+
end
|
98
|
+
|
99
|
+
it "should leave Literals alone" do
|
100
|
+
ref = Literal.untyped('foo')
|
101
|
+
Triple.coerce_object(ref).should == ref
|
102
|
+
|
103
|
+
typedref = Literal.build_from('foo')
|
104
|
+
Triple.coerce_object(ref).should == ref
|
105
|
+
end
|
106
|
+
|
107
|
+
end
|
108
|
+
end
|
data/spec/uriref_spec.rb
ADDED
@@ -0,0 +1,96 @@
|
|
1
|
+
require 'webrick'
|
2
|
+
include WEBrick
|
3
|
+
require 'lib/reddy'
|
4
|
+
#require 'lib/uriref'
|
5
|
+
|
6
|
+
describe "URI References" do
|
7
|
+
it "should output NTriples" do
|
8
|
+
f = URIRef.new("http://tommorris.org/foaf/")
|
9
|
+
f.to_ntriples.should == "<http://tommorris.org/foaf/>"
|
10
|
+
end
|
11
|
+
|
12
|
+
it "should handle Unicode symbols inside URLs" do
|
13
|
+
lambda do
|
14
|
+
f = URIRef.new("http://example.org/#Andr%E9")
|
15
|
+
end.should_not raise_error
|
16
|
+
end
|
17
|
+
|
18
|
+
# it "do not contain any control characters (#x00 - #x1F, #x74-#x9F)" do
|
19
|
+
# lambda do
|
20
|
+
# f = URIRef.new("http://tommorris.org/blog/")
|
21
|
+
# f.test_string("http://tommorris.org/blog")
|
22
|
+
# end.should_not raise_error
|
23
|
+
#
|
24
|
+
# lambda do
|
25
|
+
# f = URIRef.new("http://xmlns.com/foaf/0.1/knows")
|
26
|
+
# f.test_string("http://xmlns.com/foaf/0.1/knows")
|
27
|
+
# end.should_not raise_error
|
28
|
+
# end
|
29
|
+
|
30
|
+
it "should return the 'last fragment' name" do
|
31
|
+
fragment = URIRef.new("http://example.org/foo#bar")
|
32
|
+
fragment.short_name.should == "bar"
|
33
|
+
|
34
|
+
path = URIRef.new("http://example.org/foo/bar")
|
35
|
+
path.short_name.should == "bar"
|
36
|
+
|
37
|
+
nonetest = URIRef.new("http://example.org/")
|
38
|
+
nonetest.short_name.should == false
|
39
|
+
end
|
40
|
+
|
41
|
+
it "produce a valid URI character sequence (per RFC 2396 §2.1) representing an absolute URI with optional fragment identifier" do
|
42
|
+
pending "TODO: figure out a series of tests for RFC 2396 §2.1 adherence"
|
43
|
+
end
|
44
|
+
|
45
|
+
it "should throw errors on suspicious protocols and non-protocols" do
|
46
|
+
lambda do
|
47
|
+
URIRef.new("javascript:alert(\"pass\")")
|
48
|
+
end.should raise_error
|
49
|
+
end
|
50
|
+
|
51
|
+
it "must not be a relative URI" do
|
52
|
+
lambda do
|
53
|
+
URIRef.new("foo")
|
54
|
+
end.should raise_error
|
55
|
+
end
|
56
|
+
|
57
|
+
it "should discourage use of %-escaped characters" do
|
58
|
+
pending "TODO: figure out a way to discourage %-escaped character usage"
|
59
|
+
end
|
60
|
+
|
61
|
+
it "should allow another URIRef to be added" do
|
62
|
+
uri = URIRef.new("http://example.org/") + "foo#bar"
|
63
|
+
uri.to_s.should == "http://example.org/foo#bar"
|
64
|
+
uri.class.should == URIRef
|
65
|
+
|
66
|
+
uri2 = URIRef.new("http://example.org/") + Addressable::URI.parse("foo#bar")
|
67
|
+
uri2.to_s.should == "http://example.org/foo#bar"
|
68
|
+
end
|
69
|
+
|
70
|
+
# TEST turned off until parser is working.
|
71
|
+
# it "should allow the programmer to Follow His Nose" do
|
72
|
+
# a = URIRef.new("http://127.0.0.1:3001/test")
|
73
|
+
#
|
74
|
+
# # server
|
75
|
+
# test_proc = lambda { |req, resp|
|
76
|
+
# resp['Content-Type'] = "application/rdf+xml"
|
77
|
+
# resp.body = <<-EOF;
|
78
|
+
# <?xml version="1.0" ?>
|
79
|
+
# <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:foaf="http://xmlns.com/foaf/0.1/">
|
80
|
+
# <rdf:Description rdf:about="http://localhost:3001/test">
|
81
|
+
# <foaf:name>Testy McTest</foaf:name>
|
82
|
+
# </rdf:Description>
|
83
|
+
# </rdf:RDF>
|
84
|
+
# EOF
|
85
|
+
# }
|
86
|
+
# test = HTTPServlet::ProcHandler.new(test_proc)
|
87
|
+
# s = HTTPServer.new(:Port => 3001)
|
88
|
+
# s.mount("/test", test)
|
89
|
+
# trap("INT"){ s.shutdown }
|
90
|
+
# thread = Thread.new { s.start }
|
91
|
+
# graph = a.load_graph
|
92
|
+
# s.shutdown
|
93
|
+
# graph.class.should == Reddy::Graph
|
94
|
+
# graph.size.should == 1
|
95
|
+
# end
|
96
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
describe "Reddy library"
|
2
|
+
it "should allow the programmer to Follow His Nose" do
|
3
|
+
a = URIRef.new("http://127.0.0.1:3001/test")
|
4
|
+
test_proc = lambda { |req, resp|
|
5
|
+
resp['Content-Type'] = "application/rdf+xml"
|
6
|
+
resp.body = <<-EOF;
|
7
|
+
<?xml version="1.0" ?>
|
8
|
+
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:foaf="http://xmlns.com/foaf/0.1/">
|
9
|
+
<rdf:Description rdf:about="http://localhost:3001/test">
|
10
|
+
<foaf:name>Testy McTest</foaf:name>
|
11
|
+
</rdf:Description>
|
12
|
+
</rdf:RDF>
|
13
|
+
EOF
|
14
|
+
}
|
15
|
+
test = HTTPServlet::ProcHandler.new(test_proc)
|
16
|
+
s = HTTPServer.new(:Port => 3001)
|
17
|
+
s.mount("/test", test)
|
18
|
+
trap("INT"){ s.shutdown }
|
19
|
+
thread = Thread.new { s.start }
|
20
|
+
graph = a.load_graph
|
21
|
+
s.shutdown
|
22
|
+
graph.class.should == Reddy::Graph
|
23
|
+
graph.size.should == 1
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
|
2
|
+
@prefix lcsh_10: <http://lcsh.info/sh85112589#>.
|
3
|
+
@prefix lcsh_11: <http://lcsh.info/sh85008324#>.
|
4
|
+
@prefix lcsh_12: <http://lcsh.info/sh85029102#>.
|
5
|
+
@prefix lcsh_13: <http://lcsh.info/sh85100849#>.
|
6
|
+
@prefix lcsh_14: <http://lcsh.info/sh85108488#>.
|
7
|
+
@prefix lcsh_15: <http://lcsh.info/sh85043208#>.
|
8
|
+
@prefix lcsh_16: <http://lcsh.info/sh85083186#>.
|
9
|
+
@prefix lcsh_17: <http://lcsh.info/sh85118626#>.
|
10
|
+
@prefix lcsh_18: <http://lcsh.info/sh85108398#>.
|
11
|
+
@prefix lcsh_19: <http://lcsh.info/sh85075529#>.
|
12
|
+
@prefix lcsh_20: <http://lcsh.info/sh85026700#>.
|
13
|
+
@prefix lcsh_6: <http://lcsh.info/sh85062913#>.
|
14
|
+
@prefix lcsh_7: <http://lcsh.info/sh96000718#>.
|
15
|
+
@prefix lcsh_8: <http://lcsh.info/sh91004532#>.
|
16
|
+
@prefix lcsh_9: <http://lcsh.info/sh91002683#>.
|
17
|
+
@prefix dcterms: <http://purl.org/dc/terms/>.
|
18
|
+
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
|
19
|
+
@prefix skos: <http://www.w3.org/2004/02/skos/core#>.
|
20
|
+
|
21
|
+
lcsh_6:concept a skos:Concept;
|
22
|
+
dcterms:LCC "AZ";
|
23
|
+
dcterms:created "1986-02-11"^^<http://www.w3.org/2001/XMLSchema#date>;
|
24
|
+
dcterms:modified "2006-08-02T11:15:32"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
|
25
|
+
skos:broader lcsh_19:concept;
|
26
|
+
skos:inScheme <http://lcsh.info/>;
|
27
|
+
skos:narrower lcsh_11:concept,
|
28
|
+
lcsh_12:concept,
|
29
|
+
lcsh_15:concept,
|
30
|
+
lcsh_16:concept,
|
31
|
+
lcsh_13:concept,
|
32
|
+
lcsh_18:concept,
|
33
|
+
lcsh_14:concept,
|
34
|
+
lcsh_10:concept,
|
35
|
+
lcsh_17:concept,
|
36
|
+
lcsh_9:concept,
|
37
|
+
lcsh_8:concept,
|
38
|
+
lcsh_7:concept;
|
39
|
+
skos:prefLabel "Humanities"@en;
|
40
|
+
skos:related lcsh_20:concept;
|
41
|
+
skos:scopeNote "Here are entered works on the branches of learning regarded as having a cultural character, including literature, the arts, history, philosophy, religion, etc."@en.
|
@@ -0,0 +1,21 @@
|
|
1
|
+
<http://lcsh.info/sh85062913#concept> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2004/02/skos/core#Concept> .
|
2
|
+
<http://lcsh.info/sh85062913#concept> <http://purl.org/dc/terms/LCC> "AZ" .
|
3
|
+
<http://lcsh.info/sh85062913#concept> <http://purl.org/dc/terms/created> "1986-02-11"^^<http://www.w3.org/2001/XMLSchema#date> .
|
4
|
+
<http://lcsh.info/sh85062913#concept> <http://purl.org/dc/terms/modified> "2006-08-02T11:15:32"^^<http://www.w3.org/2001/XMLSchema#dateTime> .
|
5
|
+
<http://lcsh.info/sh85062913#concept> <http://www.w3.org/2004/02/skos/core#broader> <http://lcsh.info/sh85075529#concept> .
|
6
|
+
<http://lcsh.info/sh85062913#concept> <http://www.w3.org/2004/02/skos/core#inScheme> <http://lcsh.info/> .
|
7
|
+
<http://lcsh.info/sh85062913#concept> <http://www.w3.org/2004/02/skos/core#narrower> <http://lcsh.info/sh85008324#concept> .
|
8
|
+
<http://lcsh.info/sh85062913#concept> <http://www.w3.org/2004/02/skos/core#narrower> <http://lcsh.info/sh85029102#concept> .
|
9
|
+
<http://lcsh.info/sh85062913#concept> <http://www.w3.org/2004/02/skos/core#narrower> <http://lcsh.info/sh85043208#concept> .
|
10
|
+
<http://lcsh.info/sh85062913#concept> <http://www.w3.org/2004/02/skos/core#narrower> <http://lcsh.info/sh85083186#concept> .
|
11
|
+
<http://lcsh.info/sh85062913#concept> <http://www.w3.org/2004/02/skos/core#narrower> <http://lcsh.info/sh85100849#concept> .
|
12
|
+
<http://lcsh.info/sh85062913#concept> <http://www.w3.org/2004/02/skos/core#narrower> <http://lcsh.info/sh85108398#concept> .
|
13
|
+
<http://lcsh.info/sh85062913#concept> <http://www.w3.org/2004/02/skos/core#narrower> <http://lcsh.info/sh85108488#concept> .
|
14
|
+
<http://lcsh.info/sh85062913#concept> <http://www.w3.org/2004/02/skos/core#narrower> <http://lcsh.info/sh85112589#concept> .
|
15
|
+
<http://lcsh.info/sh85062913#concept> <http://www.w3.org/2004/02/skos/core#narrower> <http://lcsh.info/sh85118626#concept> .
|
16
|
+
<http://lcsh.info/sh85062913#concept> <http://www.w3.org/2004/02/skos/core#narrower> <http://lcsh.info/sh91002683#concept> .
|
17
|
+
<http://lcsh.info/sh85062913#concept> <http://www.w3.org/2004/02/skos/core#narrower> <http://lcsh.info/sh91004532#concept> .
|
18
|
+
<http://lcsh.info/sh85062913#concept> <http://www.w3.org/2004/02/skos/core#narrower> <http://lcsh.info/sh96000718#concept> .
|
19
|
+
<http://lcsh.info/sh85062913#concept> <http://www.w3.org/2004/02/skos/core#prefLabel> "Humanities"@en .
|
20
|
+
<http://lcsh.info/sh85062913#concept> <http://www.w3.org/2004/02/skos/core#related> <http://lcsh.info/sh85026700#concept> .
|
21
|
+
<http://lcsh.info/sh85062913#concept> <http://www.w3.org/2004/02/skos/core#scopeNote> "Here are entered works on the branches of learning regarded as having a cultural character, including literature, the arts, history, philosophy, religion, etc."@en .
|
@@ -0,0 +1,157 @@
|
|
1
|
+
|
2
|
+
@prefix lcsh_10: <http://lcsh.info/sh85082365#>.
|
3
|
+
@prefix lcsh_11: <http://lcsh.info/sh85050839#>.
|
4
|
+
@prefix lcsh_12: <http://lcsh.info/sh85093228#>.
|
5
|
+
@prefix lcsh_13: <http://lcsh.info/sh85046844#>.
|
6
|
+
@prefix lcsh_14: <http://lcsh.info/sh85037299#>.
|
7
|
+
@prefix lcsh_15: <http://lcsh.info/sh85018308#>.
|
8
|
+
@prefix lcsh_16: <http://lcsh.info/sh85084442#>.
|
9
|
+
@prefix lcsh_17: <http://lcsh.info/sh85078115#>.
|
10
|
+
@prefix lcsh_18: <http://lcsh.info/sh85052941#>.
|
11
|
+
@prefix lcsh_19: <http://lcsh.info/sh85048251#>.
|
12
|
+
@prefix lcsh_20: <http://lcsh.info/sh85127551#>.
|
13
|
+
@prefix lcsh_21: <http://lcsh.info/sh85007163#>.
|
14
|
+
@prefix lcsh_22: <http://lcsh.info/sh85120237#>.
|
15
|
+
@prefix lcsh_23: <http://lcsh.info/sh85044510#>.
|
16
|
+
@prefix lcsh_24: <http://lcsh.info/sh85034914#>.
|
17
|
+
@prefix lcsh_25: <http://lcsh.info/sh85064861#>.
|
18
|
+
@prefix lcsh_26: <http://lcsh.info/sh85107377#>.
|
19
|
+
@prefix lcsh_27: <http://lcsh.info/sh85066296#>.
|
20
|
+
@prefix lcsh_28: <http://lcsh.info/sh85072381#>.
|
21
|
+
@prefix lcsh_29: <http://lcsh.info/sh85121771#>.
|
22
|
+
@prefix lcsh_30: <http://lcsh.info/sh85063720#>.
|
23
|
+
@prefix lcsh_31: <http://lcsh.info/sh2006005613#>.
|
24
|
+
@prefix lcsh_32: <http://lcsh.info/sh85003425#>.
|
25
|
+
@prefix lcsh_33: <http://lcsh.info/sh85067539#>.
|
26
|
+
@prefix lcsh_34: <http://lcsh.info/sh98004034#>.
|
27
|
+
@prefix lcsh_35: <http://lcsh.info/sh2006005417#>.
|
28
|
+
@prefix lcsh_36: <http://lcsh.info/sh85054133#>.
|
29
|
+
@prefix lcsh_37: <http://lcsh.info/sh85036222#>.
|
30
|
+
@prefix lcsh_38: <http://lcsh.info/sh85137519#>.
|
31
|
+
@prefix lcsh_39: <http://lcsh.info/sh85082181#>.
|
32
|
+
@prefix lcsh_40: <http://lcsh.info/sh85093229#>.
|
33
|
+
@prefix lcsh_41: <http://lcsh.info/sh85031123#>.
|
34
|
+
@prefix lcsh_42: <http://lcsh.info/sh85038555#>.
|
35
|
+
@prefix lcsh_43: <http://lcsh.info/sh85008822#>.
|
36
|
+
@prefix lcsh_44: <http://lcsh.info/sh85092418#>.
|
37
|
+
@prefix lcsh_45: <http://lcsh.info/sh85120387#>.
|
38
|
+
@prefix lcsh_46: <http://lcsh.info/sh85052327#>.
|
39
|
+
@prefix lcsh_47: <http://lcsh.info/sh85048025#>.
|
40
|
+
@prefix lcsh_48: <http://lcsh.info/sh85111827#>.
|
41
|
+
@prefix lcsh_49: <http://lcsh.info/sh85120145#>.
|
42
|
+
@prefix lcsh_50: <http://lcsh.info/sh85058939#>.
|
43
|
+
@prefix lcsh_51: <http://lcsh.info/sh85053967#>.
|
44
|
+
@prefix lcsh_52: <http://lcsh.info/sh85031124#>.
|
45
|
+
@prefix lcsh_53: <http://lcsh.info/sh85065806#>.
|
46
|
+
@prefix lcsh_54: <http://lcsh.info/sh85032235#>.
|
47
|
+
@prefix lcsh_55: <http://lcsh.info/sh85065324#>.
|
48
|
+
@prefix lcsh_56: <http://lcsh.info/sh85014083#>.
|
49
|
+
@prefix lcsh_57: <http://lcsh.info/sh2003001099#>.
|
50
|
+
@prefix lcsh_58: <http://lcsh.info/sh95005230#>.
|
51
|
+
@prefix lcsh_59: <http://lcsh.info/sh85147590#>.
|
52
|
+
@prefix lcsh_6: <http://lcsh.info/sh85082139#>.
|
53
|
+
@prefix lcsh_60: <http://lcsh.info/sh85031122#>.
|
54
|
+
@prefix lcsh_61: <http://lcsh.info/sh85075570#>.
|
55
|
+
@prefix lcsh_62: <http://lcsh.info/sh85014235#>.
|
56
|
+
@prefix lcsh_63: <http://lcsh.info/sh85051099#>.
|
57
|
+
@prefix lcsh_64: <http://lcsh.info/sh85056481#>.
|
58
|
+
@prefix lcsh_65: <http://lcsh.info/sh85107090#>.
|
59
|
+
@prefix lcsh_66: <http://lcsh.info/sh85040869#>.
|
60
|
+
@prefix lcsh_67: <http://lcsh.info/sh85009562#>.
|
61
|
+
@prefix lcsh_68: <http://lcsh.info/sh85051148#>.
|
62
|
+
@prefix lcsh_69: <http://lcsh.info/sh85067656#>.
|
63
|
+
@prefix lcsh_7: <http://lcsh.info/sh85148106#>.
|
64
|
+
@prefix lcsh_70: <http://lcsh.info/sh85010589#>.
|
65
|
+
@prefix lcsh_71: <http://lcsh.info/sh85142449#>.
|
66
|
+
@prefix lcsh_72: <http://lcsh.info/sh85082120#>.
|
67
|
+
@prefix lcsh_73: <http://lcsh.info/sh85083608#>.
|
68
|
+
@prefix lcsh_74: <http://lcsh.info/sh85142090#>.
|
69
|
+
@prefix lcsh_75: <http://lcsh.info/sh85029268#>.
|
70
|
+
@prefix lcsh_76: <http://lcsh.info/sh85135362#>.
|
71
|
+
@prefix lcsh_77: <http://lcsh.info/sh85099995#>.
|
72
|
+
@prefix lcsh_78: <http://lcsh.info/sh85118553#>.
|
73
|
+
@prefix lcsh_8: <http://lcsh.info/sh85028801#>.
|
74
|
+
@prefix lcsh_9: <http://lcsh.info/sh85040316#>.
|
75
|
+
@prefix dcterms: <http://purl.org/dc/terms/>.
|
76
|
+
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
|
77
|
+
@prefix skos: <http://www.w3.org/2004/02/skos/core#>.
|
78
|
+
|
79
|
+
lcsh_6:concept a skos:Concept;
|
80
|
+
dcterms:LCC "QA";
|
81
|
+
dcterms:created "1986-02-11"^^<http://www.w3.org/2001/XMLSchema#date>;
|
82
|
+
dcterms:modified "1993-05-27T14:35:44"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
|
83
|
+
skos:altLabel "Math"@en;
|
84
|
+
skos:broader lcsh_78:concept;
|
85
|
+
skos:inScheme <http://lcsh.info/>;
|
86
|
+
skos:narrower lcsh_57:concept,
|
87
|
+
lcsh_35:concept,
|
88
|
+
lcsh_31:concept,
|
89
|
+
lcsh_32:concept,
|
90
|
+
lcsh_21:concept,
|
91
|
+
lcsh_43:concept,
|
92
|
+
lcsh_67:concept,
|
93
|
+
lcsh_70:concept,
|
94
|
+
lcsh_56:concept,
|
95
|
+
lcsh_62:concept,
|
96
|
+
lcsh_15:concept,
|
97
|
+
lcsh_8:concept,
|
98
|
+
lcsh_75:concept,
|
99
|
+
lcsh_60:concept,
|
100
|
+
lcsh_41:concept,
|
101
|
+
lcsh_52:concept,
|
102
|
+
lcsh_54:concept,
|
103
|
+
lcsh_24:concept,
|
104
|
+
lcsh_37:concept,
|
105
|
+
lcsh_14:concept,
|
106
|
+
lcsh_42:concept,
|
107
|
+
lcsh_9:concept,
|
108
|
+
lcsh_66:concept,
|
109
|
+
lcsh_23:concept,
|
110
|
+
lcsh_13:concept,
|
111
|
+
lcsh_47:concept,
|
112
|
+
lcsh_19:concept,
|
113
|
+
lcsh_11:concept,
|
114
|
+
lcsh_63:concept,
|
115
|
+
lcsh_68:concept,
|
116
|
+
lcsh_46:concept,
|
117
|
+
lcsh_18:concept,
|
118
|
+
lcsh_51:concept,
|
119
|
+
lcsh_36:concept,
|
120
|
+
lcsh_64:concept,
|
121
|
+
lcsh_50:concept,
|
122
|
+
lcsh_30:concept,
|
123
|
+
lcsh_25:concept,
|
124
|
+
lcsh_55:concept,
|
125
|
+
lcsh_53:concept,
|
126
|
+
lcsh_27:concept,
|
127
|
+
lcsh_33:concept,
|
128
|
+
lcsh_69:concept,
|
129
|
+
lcsh_28:concept,
|
130
|
+
lcsh_61:concept,
|
131
|
+
lcsh_17:concept,
|
132
|
+
lcsh_72:concept,
|
133
|
+
lcsh_39:concept,
|
134
|
+
lcsh_10:concept,
|
135
|
+
lcsh_73:concept,
|
136
|
+
lcsh_16:concept,
|
137
|
+
lcsh_44:concept,
|
138
|
+
lcsh_12:concept,
|
139
|
+
lcsh_40:concept,
|
140
|
+
lcsh_77:concept,
|
141
|
+
lcsh_65:concept,
|
142
|
+
lcsh_26:concept,
|
143
|
+
lcsh_48:concept,
|
144
|
+
lcsh_49:concept,
|
145
|
+
lcsh_22:concept,
|
146
|
+
lcsh_45:concept,
|
147
|
+
lcsh_29:concept,
|
148
|
+
lcsh_20:concept,
|
149
|
+
lcsh_76:concept,
|
150
|
+
lcsh_38:concept,
|
151
|
+
lcsh_74:concept,
|
152
|
+
lcsh_71:concept,
|
153
|
+
lcsh_59:concept,
|
154
|
+
lcsh_7:concept,
|
155
|
+
lcsh_58:concept,
|
156
|
+
lcsh_34:concept;
|
157
|
+
skos:prefLabel "Mathematics"@en.
|