=== 0.5.9.1 * Fix minor graph property caching bug relating to manipulation of sequences. === 0.5.9 * Update to 2010-10-26 LC version of RDFa Core 1.1 * Deep processing of XMLLiterals * Case sensitive Terms * Updated processor graph vocabulary === 0.5.8.2 * Don't create unnecessary namespaces when serializing RDF/XML. * Don't use regexp to substitute base URI in URI serialization. * Added :profile_graph option to RdfaParser#parse. This MUST be a ConjunctiveGraph and will be used to save profiles that are encountered. * Fixme, for now, retrieval should include HTTP headers and perform appropriate HTTP cache control and check for potential updates. * Added ConjunctiveGraph#add_quad. Adds a quad from the intended subject, predicate, object, and context. @example g = Graph.new cg = ConjunctiveGraph.new cg.add_quad(BNode.new, URIRef.new("http://xmlns.com/foaf/0.1/knows"), BNode.new, g) => results in the triple being added to g === 0.5.8 * Remove dependency on whatlanguage. * Added support for Processor Graphs. * Change Graph#seq to specifically look for subject type of rdf:Seq, rdf:Bag or rdf:Alt to trigger rdf:_n processing. * Update RDFa processing to WD-rdfa-core-20100803 semantics * Added Processor Graph and required output * Reverse order of processing profiles * Don't process element if any profile fails * XMLLiterals must be explicitly specified as @datatype * TERMorCURIEorAbsURI requires an absolute URI, not document relative * Move @profile parsing before @vocabulary. * Extract a new default vocabulary from @profile.* === 0.5.7 * Add back support for RDFa 1.0 as well as RDFa 1.1. Parser checks @version to determine which * Remove specs for html4 and html5 until sorted out. * Don't allow _ as a prefix name. * Don't emit non-URI predicate values * Use sqlite3-ruby version 1.2.5, as 1.3.1 breaks multiple argument execs. === 0.5.6 * Remove trailing ' in #encoding for treetop grammer, which caused problems installing rdoc in ruby 1.9. * Fixed corner case in RDFa parser where document doesn't exist, which was raising an error. * Add dependency on patron >= 0.4.6. * Fixed Triple#inspect to properly display paterns. (closes Issue #2). * Pre-process spec manifests into YAML files. * Unescape values when creating URIs from N3 parser. * URI Normalization isn't required so removed from parsers. === 0.5.4 * RDFa 1.1 parsing supported (based on RDFa Core 1.1 W3C Working Draft 22 April 2010) * Fix URIRef#short_name (and consequently #base and #namespace) to not extract a non-hierarchical path as a short_name * Namespace no longer uses URIRef, but just acts on strings. * Namespace#new does not take an optional _fragment_ argument any longer. * Added Namespace#to_s to output "prefix: uri" format * Graph#qname first trys generating using bound namespaces, then adds well-known namespaces. * URIRef#to_qname and #to_namespace No longer generates an exception. Each take either a Hash or an Array of namespaces and tries them from longest to shortest. * Improved Turtle and XML serializers in use of namespaces. * Generate pending messages if RDFa tests skipped due to lack of Redland installation. * Change dcterms: prefix to dc: (fully compatible with previous /elements/ definitions) === 0.5.3 * Fix bug in XML serializer when type is a BNode. * Undo change in 0.5.2 to remove old binding based on equivalent URI to equivalent prefix. * Undo change form 0.5.1 to make BNode.new("") a named identifier. Required for RDFa test 0088. === 0.5.2 * Remove old binding for a namespace URI creating a new binding === 0.5.1 * Avoid stack-overflow when checking graph size (if ::RdfContext::debug? == true) * Refactor serializers to be based on AbstractSerializer * Graph * Add Graph#serialize taking a serializer or symbol identifing a serialzer and a base URI * Add Graph#add_seq to add the list of Resources as to an RDF Container (i.e., rdf:first/rdf:rest) * Add Graph#sync_properties to write properties cached from Graph#properties back to the store. * Add TurtleSerializer, along with AbstractSerializer, RecusiveSerializer, NTSerializer and XMLSerializer * Update XmlSerializer, and Graph#to_xml to do more intelligent generation of RDF/XML * Control depth of recursive node generation with :max_depth * Serialize rdf:type and untyped literals as attributes with :attributes => :untyped * Serialize typed literals as attributes with :attributes => :typed * Added Literal#typed? and Literal#untyped? in addition to Literal#xmlliteral? * BNode.new("") is not a named identifier, it's equivalent to an anonymous BNode === 0.5.0 * Support for Ruby 1.9, 1.8.7 and 1.8.6. * Unicode escapes and URIRefs only work properly in Ruby 1.9 * Replaced some (&:meth) spells with {|c| c.meth} for Ruby 1.8.6 compatibility * Fully compliant N3 parser (n3-rdf level) with extnensive tests, including SWAP, CWM and Turtle test suites. * Supports paths, keywords, all semantic expressions. * No support yet for Formulae, variables, rules or automatic reification * Allow Triple#subject to be like an object, allowing literals and graphs * Allow Triple#predicate to be a BNode as well as a URIRef * Graph changes * Graph#properties(subject) returns properties of a subject expressed as a hash to arrays of objects. * Graph#seq(subject) returns ordered rdf:_n objects if subject is a rdf:Seq., or list of rdf:first/rdf:rest * Graph#qname(uri) as alternative to uri.qname, has namespaces available. * Graph#type_of(subject) array of RDF_TYPE objects. * Graph#allow_n3 (getter/setter and option) controls if extra N3 semantics for graphs are allowed. Otherwise, calls Triple#validate_rdf to raise exception * Real graph comparisons, including permutation search of triples containing BNodes (obviously, may be expensive) * Add QuotedGraph and AggregateGraph * Literal changes * Literal#== as alias to eql? Needed for sort and uniq. * Normalize valid typed literals * Added Literal#valid? to perform some content validations. * URIRef/Namespace changes * Fix URI generation, performing normalizations for normal URI refs, and not for Namespace URIs. * Fixed bug in URIRef#namespace & to_qname when namespace does not have a trailing / or # * URIRef#short_name may return a different value after a namespace is assigned. * Reduce dependency on Redland when running tests === 0.4.8 * Add Duration and support in Literal * Add datatype support for xs:boolean, xs:double, xs:duration and xs:time. * Literal::Encoding#encode_contents properly encodes different datatypes to string. * Literal#to_native converts literal value to appropriate native object based on datatype. === 0.4.7 * Graph identifiers only URIRef or BNode; Literal not supported by SQL Store. * Namespace#+ updated to not use URIRef logic for creating URIs, as this removes part of the URI in the case that the URI does not end with / or #. * Incorporated pdlug's changes: * Support using trailing underscores to work around generating URI's with Namespace that use methods that are on core ruby classes or reserved words (like Nokogiri Builder does). For example dc.type_ to generate the dc:type URI. * Tests for Date/DateTime literals, added support for detecting them and generating the right literals in Triple. === 0.4.6 * Added Graph#uri_mapping and AbstractStore#uri_mapping for uri => Namespace mappings in graph * Fix BNode creation from existing identifier (named or un-named) * Graph#destroy removes graph context from store without configuration, and removes store storage with configuration * Added Triple#to_n3 and URIRef#to_n3 * Added AbstractStore#uri_binding to give uri => namespace mapping from all store classes. === 0.4.5 * Order includes to remove platform dependencies on load requirements. * Fix XML Comparison matcher * Add --store option to bin/rdf_context. Let Parser#detect_format intuit file type. * Add Graph#contents as alias to store * Add ConjunctiveGraph#triples to return all triples from store, not just default context * Add Graph#nsbinding to retreive Store#nsbinding * Fix numerious SQLite3Store and AbstractSQLStore bugs. Add round-trip tests to Graph spec. === 0.4.4 * Namespace usage cleanup * When serializing graph to RDF/XML, create namespaces as necessary. * rename bin/reddy to bin/rdf_context === 0.4.3 * Coverage tests === 0.4.2 * Released as RdfContext gem === 0.2.2 * Added AbstractSqlStore and SQLite3Store * Store contexts are always graphs === 0.2.1 * Added MemoryStore, a context-aware store based on Python RDFLib IOMemory * Add ConjunctiveGraph, a conjunction of all graphs in a context-aware store * Triple(nil, nil, nil) is wildcard, plus variations. No support for regular expressions. * BNodes not graph/store specific, generated using milli-second time and sequence. * Graph(:store) may be one of :list_store or :memory_store, which will instanciate appropriate store * Graph#contains? iterates over triples if object is a literal to allow for fuzzy matching. * Change gem name to "gkellogg-reddy" to allow publishing to Github. * ConjunctiveGraph tests. === 0.2.0 * API and RDoc cleanup * Removed Graph#each_with_subject, Graph#get_resource, Graph#has_bnode_identifier? * Added Graph#predicates and Graph#objects * Changed Graph#triples to take optional subject predicate and object to match statements. * Renamed Graph#bind o Graph#merge! * Graph#triples yields triples if a block is provided * Changed Namespace#short to Namespace#prefix * Change BNode to require a graph. Most uses go from graph.bnode, rather than BNode.new. This is required because bnodes are only equivalent within the same graph * Added identifier to Graph, defaults to BNode. This from Python RDFlib based on TriX recommendation, see: http://www.w3.org/2004/03/trix/ * Only add triple to graph if it does not already exist in graph. * Added Graph#contains? to look for existance of triple. * Added Graph#eql? (and ===) to do simple check for graph equality. This version ignores BNodes (like Python RDFlib) * Prepend "named" to named BNodes to ensure no overlap between generated and named BNodes. * Added Graph#clone and Triple#clone * Merge Graphs, replacing BNodes with new values from new graph. * Remove duplicate triples when adding or merging graphs * Added Abstract Store and List Store. * Delegate Graph methods to store. Currently only supports :list. * Reduce dependence on HTML namespace in RDFa parser. * Add RDFa tests for HTML4 and HTML5 === 0.1.5 * Update RDFa tests to use RdfContext RDF/XML parser. * All negative RDF/XML parser tests pass. * Add RdfContext::Parser, super-class of other parsers and move common code. * Change N3Parser to use same new/parse logic as other parsers. * Remove debug array by default, and add in calls to tests. === 0.1.4 * Update N3 treetop parser to version 1.4.0 (no digits in parser rule names). * Fix N3 literal handling (still has bug with escaped double quote). * Handle N3 <#> prefix. * Don't output lang for typed literals in n3 format * Rewrite of RDF/XML parser based on spec; passes existing tests. * Update rdfcore tests based on rdfa test harness. * Move Literal string escape/unescape to string_hacks. * Fix literal n3_encoded parsing. * All positive RDF/XML parser tests pass. === 0.1.3 * Added rdfa-test-suite as sub-module and refactored RDFa tests to use them. * Fix but in white-space separated attributes * Downcase XHTML reserved words === 0.1.2 * Move most test-case logic into rdfa_helper. * Separate approved and unreviewed tests. * Allow for soft failure of unreviewed tests by catching Spec::Expectations::ExpectationNotMetError. * Integrate rdfa-test-suite and create test cases in the same manner. (Causing SPARQL problems with XMLLiterals) === 0.1.1 / 2009-11-01 * Changes from rdfa_parser project. === 0.1.0 / 2008-12-02 * First public alpha. RDF/XML parsing works but is not fully spec or test compliant. There is much work to be done.