- From: Victor Porton <porton@narod.ru>
- Date: Thu, 10 Jul 2014 14:18:40 +0300
- To: Michael Brunnbauer <brunni@netestate.de>
- Cc: SW-forum Web <semantic-web@w3.org>
10.07.2014, 11:26, "Michael Brunnbauer" <brunni@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? The reason that I choose RDF is because my app combine data from different files. Below in this message there is presented a solution of my problem in RDF. > 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 -- Victor Porton - http://portonvictor.org
Received on Thursday, 10 July 2014 11:19:13 UTC