Hi Sebastian, I'll try to clarify further. This really is a tricky topic and maybe more than an email thread is needed to explain this. If you want to dive into the details, you may want to check out some textbooks to get started (Abiteboul et al. would be the standard intro to database theory and Relational Algebra; for FOL there are many choices, but there is no DL-specific textbook; there are some good DL tutorials, however, that may be useful). I don't know of a good reference that explains the differences that are causing confusion here.
On 01.06.2016 17:03, Sebastian Hellmann wrote: > Hi Markus, > > On 01.06.2016 14:49, Markus Kroetzsch wrote: >> Hi Sebastian, >> >> On 01.06.2016 13:07, Sebastian Hellmann wrote: >>> Hi Markus, >>> >>> On 01.06.2016 12:58, Markus Kroetzsch wrote: >>>> On 01.06.2016 10:46, Sebastian Hellmann wrote: >>>>> https://en.wikipedia.org/wiki/Unique_name_assumption >>>> >>>> The UNA is a principle in formal logic and knowledge representation. >>>> It is not really related to this discussion. For example, standard >>>> DBMS all make the UNA, but you can still have many identifiers (keys) >>>> for the same object in a database. >>> >>> Then the database does not use UNA. The above sentence reads like you >>> could have two primary keys, but then still have them pointing to the >>> same row. >>> UNA means, if you have two identifiers A, B you add a triple A >>> owl:differentFrom B at all times. >> >> I don't think that this mixing of different notions is making much sense. > > Makes totally sense to me, since they are all quite similar. Entity > Relationship Diagram are similar to Onologies/RDF, SPARQL is often > implemented using Relational Databases. > The relational model https://en.wikipedia.org/wiki/Relational_model by > Codd is consistent with first-order predicate logic as are many > description logics, in particular a less expressive fragment was used to > design OWL https://en.wikipedia.org/wiki/Description_logic#First_order_logic Sorry, but you are mixing up things again here. Being "similar" is not enough to establish a logical relationship between two formalisms. Eve the underlying logic (FOL here) is just one aspect. OWL semantics is based on *entailment* of logical consequences in FOL. In contrast, Relational Algebra is based on *model checking* with respect to finite FOL models. The two tasks are totally and fundamentally different (model checking is PSpace complete, entailment checking is undecidable, for a start). It's beyond this thread to explain all details relevant here, and the somewhat vague notion of "UNA" does not really do it justice either (UNA is really a property of a logic's model theory, but does not tell you whether you are doing model checking or entailment). > >> Every SPARQL processor under simple semantics makes the UNA > > What is simple SEMANTiCS? "Simple semantics" is the most basic way of interpreting RDF graphs. If you would like to know more, then you could start with the spec: https://www.w3.org/TR/rdf11-mt/#simple-interpretations Most SPARQL processors do not go beyond this, though their semantics is specified differently (based on model checking rather than on entailment, which makes it more natural to talk about, e.g., negation and aggregates). Nevertheless, the simple semantics is kind of built into the SPARQL BGP semantics already, so you cannot do anything less if you implement SPARQL. > Primary key in SPARQL stores backed with > relational db's often have the Quad {?g {?s ?p ?o}}as the primary key. > De facto, UNA produces contradictions as soon as you want to state that > to things are the same. So owl:sameAs would not make sense combined with > UNA as it would always cause contradictions, except in the reflexive case. > Just because you are not unifying merging identifiers right away does > not imply UNA. I cannot make sense of these sentences. UNA is a property of the semantics you use, which in turn is determined by the tool (reasoner) you apply. You cannot "imply UNA" -- either you implement it or you implement something else. How you implement equality reasoning (by "merging identifiers", for example) is entirely unrelated. You can perfectly well capture equality reasoning in a UNA system using auxiliary axioms. None of this has anything to do with how you identify quads in SPARQL. > >> , while RDF and OWL entailment regimes for SPARQL do not make it. This >> has nothing to do with how you model concepts and their IDs in your >> domain. You can have the same data and use it in different SPARQL >> tools, sometimes with a UNA sometimes without, > there are SPARQL tools that throw a contradiction, if they encounter > owl:sameAs > >> but your choice of modelling identifiers is not affected by that. > > OWL was designed to handle multiple identifiers. This affects the > modeling in a way that it is fine to have several IDs. > DBpedia as such uses this. Below are all ID's for DBpedia Berlin., where > the first one is the canonical one. A good idea might be to provide > <http://dbpedia.org/pagid/3354> as well in the future. We are working on > a service that allows to canonicalize all DBpedia Ids, which is only > legit as there is no UNA intended in OWL. Thanks for reminding us of the various URIs you have in DBpedia (keeping some connection to the topic of this thread ;-). The relationship with UNA is again not so relevant here. It is not true to say that you can only have several identifiers because OWL does not have a UNA. Instead, it is correct to say that asserting several identifiers to be semantically equal (in the sense of sameAs) is only useful if you have no UNA. But this statement is really trivial: a logic with UNA never has a built-in equality (this would be a design error). However, a logic may use UNA and axiomatize an equality predicate to achieve the same results in query answering. In some logics, you cannot even detect at all whether the UNA has been made or not when using positive queries (OWL QL is a typical example). My main point is that none of these intricate discussions of ontology semantics based on mathematical logic have anything to do with the choice of a user to have more than one identifier for a concept. You will encode the fact that something is an identifier in different ways depending on what ontology language you use, but the discussion is really on another level. Many data collections we are talking about have no logical semantics at all, yet they may use multiple identifiers for one thing. I am sure that Tom's example of multiple identifiers in Freebase is a purely technical approach based on redirects and API "synonyms" without any commitment to a specific logic. Cheers, Markus -- Markus Kroetzsch Faculty of Computer Science Technische Universität Dresden +49 351 463 38486 http://korrekt.org/ ------------------------------------------------------------------------------ What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic patterns at an interface-level. Reveals which users, apps, and protocols are consuming the most bandwidth. Provides multi-vendor support for NetFlow, J-Flow, sFlow and other flows. Make informed decisions using capacity planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e _______________________________________________ DBpedia-discussion mailing list DBpedia-discussion@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dbpedia-discussion