comp.lang.ada
 help / color / mirror / Atom feed
From: Victor Porton <porton@narod.ru>
Subject: Re: Simple Components (Generic_Directed_Graph)
Date: Tue, 31 Oct 2017 17:07:29 +0200
Date: 2017-10-31T17:07:29+02:00	[thread overview]
Message-ID: <ota3jg$t0f$1@gioia.aioe.org> (raw)
In-Reply-To: ot9r3d$e0m$1@gioia.aioe.org

Dmitry A. Kazakov wrote:

> On 2017-10-31 12:12, Victor Porton wrote:
> 
>> Why Node.all'Unchecked_Access? Isn't it the same as Node?
> 
> No. Node is pool-specific.
> 
> And anyway different access types are different types. Ada is strongly
> typed.
> 
> It is one of great advantages of Ada typing system that pointer types
> have no structure-equivalence. In particular the solution I proposed is
> based on that. You can have different kinds of pointers to the same
> target type with operations like "<" and "=" defined differently on
> them. Thus having differently indexed structures of targets without
> copying the targets. In your case it is a set of strings and a graph of
> strings.
> 
>> Why no copies? Because of so defined "<"?
> 
> Because the set's element is access-to-String rather than String.
> 
>>> Alternatively you can use a set of Node with order operations defined as
>>> above and allocate a copy of the tested string in the test. You then
>>> free that string if it is already in the set and use one in the set
>>> instead. If duplicated strings are rather exception a few allocations
>>> should be no problem.
>> 
>> Duplicated strings is NOT an exception.
> 
> URIs do not repeat frequently. But I don't understand what are you doing
> anyway because the same URI can be resolved to different targets and
> conversely same target can have different URIs. And why they should have
> to be in a graph is a mystery to me.

I consider an RDF file. RDF files contain so called "triples" (subject-
predicate-object). Each of the three can be an URI.

I consider a digraph whose arcs are subject-object (with predicate 
expressing the relation "is-subclass-of"). This graph is to store all known 
sub-class relations between URIs. It is specifically is there is a path of 
"is-subclass-of" relations between any two given URIs.

Certainly an RDF file can have a subject or object more than once (and even 
many times).

RDF is a mean to store logical (semantic) relations online in a portable 
way. A URI may be not a page of the Web, but an abstract object representing 
any concept (for example, we can have an URI whose meaning is "cursive font" 
or "revolution in Ukraine" or "computer science", just arbitrary, this is 
the power of RDF).

>> What should I do?
> 
> It is your choice. I merely pointed out that you can easily avoid having
> the same string kept twice.

Is my solution to use Map to map URIs (you can think of them as strings) to 
accesses to empty records (representing graph vertices) a good programming 
style?

I do not need to map a graph vertex into a string, but I need to map a 
string into a graph vertex.

-- 
Victor Porton - http://portonvictor.org


  reply	other threads:[~2017-10-31 15:07 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-10-30 10:41 Simple Components (Generic_Directed_Graph) Victor Porton
2017-10-30 11:04 ` Victor Porton
2017-10-30 11:34   ` Dmitry A. Kazakov
2017-10-30 11:23 ` Dmitry A. Kazakov
2017-10-30 14:58   ` Victor Porton
2017-10-30 15:46     ` Dmitry A. Kazakov
2017-10-30 17:46       ` Dennis Lee Bieber
2017-10-30 20:29         ` Dmitry A. Kazakov
2017-10-30 15:13   ` Victor Porton
2017-10-30 15:54     ` Dmitry A. Kazakov
2017-10-30 18:30   ` Victor Porton
2017-10-30 20:43     ` Dmitry A. Kazakov
2017-10-30 21:20       ` Victor Porton
2017-10-30 22:39         ` Dmitry A. Kazakov
2017-10-31  7:36           ` Simon Wright
2017-10-31  8:16             ` Dmitry A. Kazakov
2017-10-31 11:12           ` Victor Porton
2017-10-31 12:42             ` Dmitry A. Kazakov
2017-10-31 15:07               ` Victor Porton [this message]
2017-10-31 15:48                 ` Dmitry A. Kazakov
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox