Hello community,
here is the log from the commit of package sord for openSUSE:Factory checked in at 2013-09-11 13:44:04
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/sord (Old)
and /work/SRC/openSUSE:Factory/.sord.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "sord"
Changes:
--------
--- /work/SRC/openSUSE:Factory/sord/sord.changes 2012-10-24 17:45:41.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.sord.new/sord.changes 2013-09-11 13:44:09.000000000 +0200
@@ -1,0 +2,12 @@
+Thu Sep 5 20:51:13 UTC 2013 - reddwarf@opensuse.org
+
+- Update to 0.12.0
+ * Update to waf 1.7.9 and autowaf r90 (install docs to versioned directory)
+ * Add sord_get() for easily getting single property values
+ * sord_validate: Pass type check when range is xsd:anyURI and value is a URI
+ * sord_validate: Support any subClassOf rdf:Property, not just baked-in ones
+ * sordmm.hpp: Add convenient constructors for decimal and integer literals
+ * sordmm.hpp: Add Node::to_serd_node()
+ * sordmm.hpp: Don't automatically add RDF namespace prefix to world
+
+-------------------------------------------------------------------
Old:
----
sord-0.10.4.tar.bz2
New:
----
sord-0.12.0.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ sord.spec ++++++
--- /var/tmp/diff_new_pack.G7e6Se/_old 2013-09-11 13:44:11.000000000 +0200
+++ /var/tmp/diff_new_pack.G7e6Se/_new 2013-09-11 13:44:11.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package sord
#
-# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -19,7 +19,7 @@
%define soname 0
Name: sord
-Version: 0.10.4
+Version: 0.12.0
Release: 0
Summary: Utilities to work with RDF data
License: ISC
@@ -103,7 +103,7 @@
%files -n libsord-docs
%defattr(0644,root,root,0755)
-%{_defaultdocdir}/sord/
+%{_defaultdocdir}/sord-0/
%{_mandir}/man3/*
%changelog
++++++ sord-0.10.4.tar.bz2 -> sord-0.12.0.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sord-0.10.4/NEWS new/sord-0.12.0/NEWS
--- old/sord-0.10.4/NEWS 2012-10-15 00:23:57.000000000 +0200
+++ new/sord-0.12.0/NEWS 2013-02-18 17:06:00.000000000 +0100
@@ -1,3 +1,15 @@
+sord (0.12.0) stable;
+
+ * Update to waf 1.7.9 and autowaf r90 (install docs to versioned directory)
+ * Add sord_get() for easily getting single property values
+ * sord_validate: Pass type check when range is xsd:anyURI and value is a URI
+ * sord_validate: Support any subClassOf rdf:Property, not just baked-in ones
+ * sordmm.hpp: Add convenient constructors for decimal and integer literals
+ * sordmm.hpp: Add Node::to_serd_node()
+ * sordmm.hpp: Don't automatically add RDF namespace prefix to world
+
+ -- David Robillard Mon, 18 Feb 2013 11:05:59 -0500
+
sord (0.10.4) stable;
* Implement better data type validation in sord_validate conformant with
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sord-0.10.4/README new/sord-0.12.0/README
--- old/sord-0.10.4/README 2012-04-17 19:01:40.000000000 +0200
+++ new/sord-0.12.0/README 2013-01-14 06:18:52.000000000 +0100
@@ -1,5 +1,5 @@
Sord
-----
+====
Sord is a lightweight C library for storing RDF statements in memory.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sord-0.10.4/doc/sord_validate.1 new/sord-0.12.0/doc/sord_validate.1
--- old/sord-0.10.4/doc/sord_validate.1 2012-09-09 08:58:42.000000000 +0200
+++ new/sord-0.12.0/doc/sord_validate.1 2013-02-18 17:11:25.000000000 +0100
@@ -45,7 +45,7 @@
sord_validate was written by David Robillard
.SH COPYRIGHT
-Copyright \(co 2012 David Robillard.
+Copyright \(co 2012-2013 David Robillard.
.br
License: http://www.opensource.org/licenses/isc-license
.br
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sord-0.10.4/doc/sordi.1 new/sord-0.12.0/doc/sordi.1
--- old/sord-0.10.4/doc/sordi.1 2012-09-09 08:58:57.000000000 +0200
+++ new/sord-0.12.0/doc/sordi.1 2013-02-18 17:11:25.000000000 +0100
@@ -31,7 +31,7 @@
Sordi was written by David Robillard
.SH COPYRIGHT
-Copyright \(co 2011 David Robillard.
+Copyright \(co 2011-2013 David Robillard.
.br
License: http://www.opensource.org/licenses/isc-license
.br
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sord-0.10.4/sord/sord.h new/sord-0.12.0/sord/sord.h
--- old/sord-0.10.4/sord/sord.h 2012-08-10 00:33:30.000000000 +0200
+++ new/sord-0.12.0/sord/sord.h 2013-02-18 18:19:55.000000000 +0100
@@ -1,5 +1,5 @@
/*
- Copyright 2011-2012 David Robillard http://drobilla.net
+ Copyright 2011-2013 David Robillard http://drobilla.net
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above
@@ -397,6 +397,20 @@
const SordNode* p,
const SordNode* o,
const SordNode* g);
+/**
+ Search for a single node that matches a pattern.
+ Exactly one of @p s, @p p, @p o must be NULL.
+ This function is mainly useful for predicates that only have one value.
+ The returned node must be freed using sord_node_free.
+ @return the first matching node, or NULL if no matches are found.
+*/
+SORD_API
+SordNode*
+sord_get(SordModel* model,
+ const SordNode* s,
+ const SordNode* p,
+ const SordNode* o,
+ const SordNode* g);
/**
Return true iff a statement exists.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sord-0.10.4/sord/sordmm.hpp new/sord-0.12.0/sord/sordmm.hpp
--- old/sord-0.10.4/sord/sordmm.hpp 2012-08-10 00:33:30.000000000 +0200
+++ new/sord-0.12.0/sord/sordmm.hpp 2013-02-18 18:40:54.000000000 +0100
@@ -1,5 +1,5 @@
/*
- Copyright 2011-2012 David Robillard http://drobilla.net
+ Copyright 2011-2013 David Robillard http://drobilla.net
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above
@@ -113,7 +113,6 @@
: _next_blank_id(0)
{
_c_obj = sord_world_new();
- add_prefix("rdf", "http://www.w3.org/1999/02/22-rdf-syntax-ns#");
}
inline ~World() {
@@ -151,6 +150,7 @@
inline Node(World& world, Type t, const std::string& s);
inline Node(World& world);
inline Node(World& world, const SordNode* node);
+ inline Node(World& world, SordNode* node, bool copy=false);
inline Node(const Node& other);
inline ~Node();
@@ -161,6 +161,10 @@
inline const SordNode* get_node() const { return _c_obj; }
inline SordNode* get_node() { return _c_obj; }
+ const SerdNode* to_serd_node() {
+ return sord_node_to_serd_node(_c_obj);
+ }
+
inline bool is_valid() const { return type() != UNKNOWN; }
inline bool operator<(const Node& other) const {
@@ -240,6 +244,30 @@
public:
inline Literal(World& world, const std::string& s)
: Node(world, Node::LITERAL, s) {}
+
+ static inline Node decimal(World& world, double d, unsigned frac_digits) {
+ const SerdNode val = serd_node_new_decimal(d, 7);
+ const SerdNode type = serd_node_from_string(
+ SERD_URI, (const uint8_t*)SORD_NS_XSD "decimal");
+
+ return Node(
+ world,
+ sord_node_from_serd_node(
+ world.c_obj(), world.prefixes().c_obj(), &val, &type, NULL),
+ false);
+ }
+
+ static inline Node integer(World& world, int64_t i) {
+ const SerdNode val = serd_node_new_integer(i);
+ const SerdNode type = serd_node_from_string(
+ SERD_URI, (const uint8_t*)SORD_NS_XSD "integer");
+
+ return Node(
+ world,
+ sord_node_from_serd_node(
+ world.c_obj(), world.prefixes().c_obj(), &val, &type, NULL),
+ false);
+ }
};
inline
@@ -278,7 +306,14 @@
Node::Node(World& world, const SordNode* node)
: _world(&world)
{
- _c_obj = node ? sord_node_copy(node) : NULL;
+ _c_obj = sord_node_copy(node);
+}
+
+inline
+Node::Node(World& world, SordNode* node, bool copy)
+ : _world(&world)
+{
+ _c_obj = copy ? sord_node_copy(node) : node;
}
inline
@@ -431,6 +466,10 @@
const Node& predicate,
const Node& object);
+ inline Node get(const Node& subject,
+ const Node& predicate,
+ const Node& object);
+
inline World& world() const { return _world; }
private:
@@ -596,6 +635,18 @@
return Iter(_world, sord_find(_c_obj, quad));
}
+inline Node
+Model::get(const Node& subject,
+ const Node& predicate,
+ const Node& object)
+{
+ SordNode* c_node = sord_get(
+ _c_obj, subject.c_obj(), predicate.c_obj(), object.c_obj(), NULL);
+ Node node(_world, c_node);
+ sord_node_free(_world.c_obj(), c_node);
+ return node;
+}
+
} // namespace Sord
#endif // SORD_SORDMM_HPP
Files old/sord-0.10.4/sord-0.10.4.tar.bz2.sig and new/sord-0.12.0/sord-0.10.4.tar.bz2.sig differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sord-0.10.4/src/sord.c new/sord-0.12.0/src/sord.c
--- old/sord-0.10.4/src/sord.c 2012-08-23 05:36:38.000000000 +0200
+++ new/sord-0.12.0/src/sord.c 2013-02-18 18:15:07.000000000 +0100
@@ -1,5 +1,5 @@
/*
- Copyright 2011 David Robillard http://drobilla.net
+ Copyright 2011-2013 David Robillard http://drobilla.net
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above
@@ -844,6 +844,31 @@
return sord_find(model, pat);
}
+SordNode*
+sord_get(SordModel* model,
+ const SordNode* s,
+ const SordNode* p,
+ const SordNode* o,
+ const SordNode* g)
+{
+ if ((bool)s + (bool)p + (bool)o != 2) {
+ return NULL;
+ }
+
+ SordIter* i = sord_search(model, s, p, o, g);
+ SordNode* ret = NULL;
+ if (!s) {
+ ret = sord_node_copy(sord_iter_get_node(i, SORD_SUBJECT));
+ } else if (!p) {
+ ret = sord_node_copy(sord_iter_get_node(i, SORD_PREDICATE));
+ } else if (!o) {
+ ret = sord_node_copy(sord_iter_get_node(i, SORD_OBJECT));
+ }
+
+ sord_iter_free(i);
+ return ret;
+}
+
bool
sord_ask(SordModel* model,
const SordNode* s,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sord-0.10.4/src/sord_test.c new/sord-0.12.0/src/sord_test.c
--- old/sord-0.10.4/src/sord_test.c 2012-08-10 00:33:31.000000000 +0200
+++ new/sord-0.12.0/src/sord_test.c 2013-01-14 07:51:40.000000000 +0100
@@ -238,6 +238,22 @@
TUP_FMT_ARGS(nomatch));
}
+ if (sord_get(sord, NULL, NULL, uri(world, 3), g)) {
+ return test_fail("Fail: Get *,*,3 succeeded\n");
+ } else if (!sord_node_equals(
+ sord_get(sord, uri(world, 1), uri(world, 2), NULL, g),
+ uri(world, 3))) {
+ return test_fail("Fail: Get 1,2,* != 3\n");
+ } else if (!sord_node_equals(
+ sord_get(sord, uri(world, 1), NULL, uri(world, 3), g),
+ uri(world, 2))) {
+ return test_fail("Fail: Get 1,*,3 != 2\n");
+ } else if (!sord_node_equals(
+ sord_get(sord, NULL, uri(world, 2), uri(world, 3), g),
+ uri(world, 1))) {
+ return test_fail("Fail: Get *,2,3 != 1\n");
+ }
+
for (unsigned i = 0; i < NUM_PATTERNS; ++i) {
QueryTest test = patterns[i];
SordQuad pat = { test.query[0], test.query[1], test.query[2], g };
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sord-0.10.4/src/sord_validate.c new/sord-0.12.0/src/sord_validate.c
--- old/sord-0.10.4/src/sord_validate.c 2012-09-09 09:06:24.000000000 +0200
+++ new/sord-0.12.0/src/sord_validate.c 2013-02-18 17:11:25.000000000 +0100
@@ -1,5 +1,5 @@
/*
- Copyright 2012 David Robillard http://drobilla.net
+ Copyright 2012-2013 David Robillard http://drobilla.net
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above
@@ -63,6 +63,7 @@
SordNode* rdfs_domain;
SordNode* rdfs_range;
SordNode* rdfs_subClassOf;
+ SordNode* xsd_anyURI;
SordNode* xsd_decimal;
SordNode* xsd_maxInclusive;
SordNode* xsd_minInclusive;
@@ -79,7 +80,7 @@
{
printf("sord_validate " SORD_VERSION
" http://drobilla.net/software/sord\n");
- printf("Copyright 2012 David Robillard http://drobilla.net.\n"
+ printf("Copyright 2012-2013 David Robillard http://drobilla.net.\n"
"License: http://www.opensource.org/licenses/isc\n"
"This is free software; you are free to change and redistribute it."
"\nThere is NO WARRANTY, to the extent permitted by law.\n");
@@ -349,6 +350,12 @@
} else if (sord_node_get_type(node) == SORD_URI) {
if (sord_node_equals(type, uris->foaf_Document)) {
return true; // Questionable...
+ } else if (is_descendant_of(
+ model, uris,
+ type, uris->xsd_anyURI, uris->owl_onDatatype)) {
+ /* Type is any URI and this is a URI, so pass. Restrictions on
+ anyURI subtypes are not currently checked (very uncommon). */
+ return true; // Type is anyURI, and this is a URI
} else {
SordIter* t = sord_search(model, node, uris->rdf_type, NULL, NULL);
for (; !sord_iter_end(t); sord_iter_next(t)) {
@@ -446,6 +453,7 @@
URI(rdfs, domain);
URI(rdfs, range);
URI(rdfs, subClassOf);
+ URI(xsd, anyURI);
URI(xsd, decimal);
URI(xsd, maxInclusive);
URI(xsd, minInclusive);
@@ -465,24 +473,29 @@
const SordNode* pred = quad[SORD_PREDICATE];
const SordNode* obj = quad[SORD_OBJECT];
- bool is_Property = sord_ask(
- model, pred, uris.rdf_type, uris.rdf_Property, 0);
- bool is_OntologyProperty = sord_ask(
- model, pred, uris.rdf_type, uris.owl_OntologyProperty, 0);
- bool is_ObjectProperty = sord_ask(
+ bool is_any_property = false;
+ SordIter* t = sord_search(model, pred, uris.rdf_type, NULL, NULL);
+ for (; !sord_iter_end(t); sord_iter_next(t)) {
+ if (is_descendant_of(model, &uris,
+ sord_iter_get_node(t, SORD_OBJECT),
+ uris.rdf_Property,
+ uris.rdfs_subClassOf)) {
+ is_any_property = true;
+ break;
+ }
+ }
+ sord_iter_free(t);
+
+ const bool is_ObjectProperty = sord_ask(
model, pred, uris.rdf_type, uris.owl_ObjectProperty, 0);
- bool is_FunctionalProperty = sord_ask(
+ const bool is_FunctionalProperty = sord_ask(
model, pred, uris.rdf_type, uris.owl_FunctionalProperty, 0);
- bool is_InverseFunctionalProperty = sord_ask(
+ const bool is_InverseFunctionalProperty = sord_ask(
model, pred, uris.rdf_type, uris.owl_InverseFunctionalProperty, 0);
- bool is_DatatypeProperty = sord_ask(
+ const bool is_DatatypeProperty = sord_ask(
model, pred, uris.rdf_type, uris.owl_DatatypeProperty, 0);
- bool is_AnnotationProperty = sord_ask(
- model, pred, uris.rdf_type, uris.owl_AnnotationProperty, 0);
- if (!is_Property && !is_OntologyProperty && !is_ObjectProperty &&
- !is_FunctionalProperty && !is_InverseFunctionalProperty &&
- !is_DatatypeProperty && !is_AnnotationProperty) {
+ if (!is_any_property) {
error("Use of undefined property", quad);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sord-0.10.4/src/sordi.c new/sord-0.12.0/src/sordi.c
--- old/sord-0.10.4/src/sordi.c 2012-08-23 05:41:38.000000000 +0200
+++ new/sord-0.12.0/src/sordi.c 2013-02-18 17:11:25.000000000 +0100
@@ -1,5 +1,5 @@
/*
- Copyright 2011-2012 David Robillard http://drobilla.net
+ Copyright 2011-2013 David Robillard http://drobilla.net
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above
@@ -40,7 +40,7 @@
print_version(void)
{
printf("sordi " SORD_VERSION " http://drobilla.net/software/sord\n");
- printf("Copyright 2011-2012 David Robillard http://drobilla.net.\n"
+ printf("Copyright 2011-2013 David Robillard http://drobilla.net.\n"
"License: http://www.opensource.org/licenses/isc\n"
"This is free software; you are free to change and redistribute it."
"\nThere is NO WARRANTY, to the extent permitted by law.\n");
Files old/sord-0.10.4/waf and new/sord-0.12.0/waf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sord-0.10.4/wscript new/sord-0.12.0/wscript
--- old/sord-0.10.4/wscript 2012-10-15 00:20:43.000000000 +0200
+++ new/sord-0.12.0/wscript 2013-02-18 17:48:49.000000000 +0100
@@ -10,7 +10,7 @@
# major increment <=> incompatible changes
# minor increment <=> compatible changes (additions)
# micro increment <=> no interface changes
-SORD_VERSION = '0.10.4'
+SORD_VERSION = '0.12.0'
SORD_MAJOR_VERSION = '0'
# Mandatory waf variables
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org