W3C home > Mailing lists > Public > semantic-web@w3.org > July 2014

Re: An alternative RDF

From: Michael Brunnbauer <brunni@netestate.de>
Date: Thu, 10 Jul 2014 10:26:36 +0200
To: Victor Porton <porton@narod.ru>
Cc: SW-forum Web <semantic-web@w3.org>
Message-ID: <20140710082636.GA12827@netestate.de>

Hello Victor,

what makes you think that RDF should be suited for your task instead of e.G.
XML and/or relational databases? RDF was not created as another tool to
handle data and data structures - there are enough of them around. RDF is more
about knowledge than about data (though the distinction is continuous).

So if you are using RDF for data structures specific to your app, RDF is not
an obvious choice. Why did you go for it?

Why does your app combine data from different files? How about using named
graphs instead?

Regards,

Michael Brunnbauer

On Wed, Jul 09, 2014 at 09:59:33PM +0300, Victor Porton wrote:
> As you see from my earlier messages to this mailing list, I had a trouble to process data combined from several different RDF files.
> 
> Recently I have thought is that (the way I use) RDF is a wrong tool for my task!
> 
> Consider this Turtle code:
> 
> @prefix : http://portonvictor.org/ns/trans/ .
> <http://example.org/the-transformation>
> 	a :transformer ;
> 	dc:description <http://...> ;
> 	# Other Dublin Core metadata.
> 	:source-namespace <...> ;
> 	:target-namespace <...> ;
> 	:precedence <...> ;
> 	:script-data [
> 		a :xslt ;
> 		:version "2.0" ;
> 		:script-url <http://example.org/scripts/foo.xslt> ;
> 		:transformer-kind :entire ;
> 		:arguments [
> 			:argument [
> 				:name "debug" ;
> 				:value false
> 			] ;
> 			:argument [
> 				:name "other" ;
> 				:value 123
> 			]
> 		] ;
> 		#:initial-context-node ... ; # See XSLT 2.0 spec.
> 		initial-template "first" ;
> 		initial-mode: "first" ;
> 		completeness 0.9 ;
> 		stability 0.9 ;
> 		preference 0.9
> 	] .
> 
> The trouble is that there may be no more than one :precedence. If we load data from an other RDF file, nothing prevents them be merged in such as way that there may be more than one :precedence for the same object, so rendering data inconsistent and forcing the programmer (me) to do something with a data which once was consistent but then suddenly became inconsistent.
> 
> In my opinion, this trouble is from essence of RDF itself.
> 
> We should do something either modifying the RDF specification, or creating a new formal language to describe objects which cannot be merged from several files in an inconsistent way.
> 
> One way to solve it inside RDF is to add blank nodes, like:
> 
> @prefix : http://portonvictor.org/ns/trans/ .
> <http://example.org/the-transformation> :transformation-data [
> 	a :transformer ;
> 	dc:description <http://...> ;
> 	# Other Dublin Core metadata.
> 	:source-namespace <...> ;
> 	:target-namespace <...> ;
> 	:precedence <...> ;
> 	:script-data [
> 		a :xslt ;
> 		:version "2.0" ;
> 		:script-url <http://example.org/scripts/foo.xslt> ;
> 		:transformer-kind :entire ;
> 		:arguments [
> 			:argument [
> 				:name "debug" ;
> 				:value false
> 			] ;
> 			:argument [
> 				:name "other" ;
> 				:value 123
> 			]
> 		] ;
> 		#:initial-context-node ... ; # See XSLT 2.0 spec.
> 		initial-template "first" ;
> 		initial-mode: "first" ;
> 		completeness 0.9 ;
> 		stability 0.9 ;
> 		preference 0.9
> 	] 
> ].
> 
> This way http://example.org/the-transformation becomes an object which cannot be "amended" into an inconsistent state by loading one more RDF file. We can provide an other data for http://example.org/the-transformation but it would be a separate object, which may have single :precedence, etc. Even if the second object (sharing the same resource URL) is invalid (say has more than one :precedence), the first object (above described) remains valid.
> 
> However RDF parsers generate IDs (like _:genid1) where unnamed nodes are inserted. I am not sure whether a non-appropriate information may be inserted from an other RDF file using an ID like _:genid1. (Can it?)
> 
> Also the last code example is a little ugly: What is a reason to put the top-level http://example.org/the-transformation inside `:transformation-data [ ... ]` container, while the lower levels of the data tree (as presented above) are not in containers? Is it consistent with intuition?
> 
> So, we need to decide whether we can store such objects in RDF or should RDF be somehow amended or even replaced with an other standard. What I have described above is a serious fundamental problem and it needs to be addressed!
> 
> --
> Victor Porton - http://portonvictor.org

-- 
++  Michael Brunnbauer
++  netEstate GmbH
++  Geisenhausener Straße 11a
++  81379 München
++  Tel +49 89 32 19 77 80
++  Fax +49 89 32 19 77 89 
++  E-Mail brunni@netestate.de
++  http://www.netestate.de/
++
++  Sitz: München, HRB Nr.142452 (Handelsregister B München)
++  USt-IdNr. DE221033342
++  Geschäftsführer: Michael Brunnbauer, Franz Brunnbauer
++  Prokurist: Dipl. Kfm. (Univ.) Markus Hendel

Received on Thursday, 10 July 2014 08:26:59 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 1 March 2016 07:42:52 UTC