Live data from Hacker News

A Review of the Semantic Web Field

cacm.acm.org

31–40 of 72 posts

Re: A Review of the Semantic Web Field

#31
post #21
post #17

Earlier quoted context omitted.

Familiarity isn't nearly enough if you want to implement something. Talking about RDF is absolutely meaningless without talking about Serialisation (and that includes ...URGH.. XML serialisation), XML Schema data-types, localisations, skolemisation, and the ongoing blank-node war. The semantic web ecosystem is the prime example of "the devils in the detail". Of course you can explain to somebody who knows what a grap…

> Talking about RDF is absolutely meaningless without talking about Serialisation (and that includes ...URGH.. XML serialisation), XML Schema data-types, localisations, skolemisation, and the ongoing blank-node war. Don't implement XML serialization. The simplest and most widely supported serialization is n-quads ( https://www.w3.org/TR/n-quads/ ). 10 pages, again with exaples, toc, and lots of non-normative content.…

> Don't implement XML serialization. The simplest and most widely supported serialization is n-quads (https://www.w3.org/TR/n-quads/). 10 pages, again with exaples, toc, and lots of non-normative content.

You omit the transitive hull that the n-quads standard drags along, as if implementing a deserializer somehow only involved a parser for the most top-level EBNF.

Also, you're still tip-toeing around the wider ecosystem of OWL, SHACL, SPIN, SAIL and friends. The fact that RDF alone even allows for that much discussion is indicative of it's complexity. It's like a discussion about SVG and HTML that never goes beyond SGML.

And you can't have your cake and eat it too. You either HAVE to implement XML-Syntax or you won't be able to load half of the worlds datasets, nor will you even be able to start working with OWL, because they do EVERYTHING with XML.

You're still coming from a user perspective. RDF will go nowhere unless it finds a balance between usability and implementability. Currently I'd argue, it focuses on neither.

JS is a bigger ecosystem than just the browser, if you want to import any real-world dataset (or persistence) you need disk backing. So anything that just goes poof on a power failure doesn't cut it.

Sorry but "works pretty well", and 6 examples combined with an unannotated automatically extracted API, does not reach my bar for "production quality".

It's that "works pretty well" state of the entire RDF ecosystem that I bemoan. It's enough to write a paper about it, it's not enough to trust the future of your company on. Or you know. Your life. Because the ONLY real world example of an OWL ontology ACTUALLY doing anything is ALWAYS Snowmed. Snowmed. Snowmed. Snowmed.

[A joke we always told about theoreticians finding a new lower bound and inference engines winning competitions: "Can snowmed be used to diagnose a patient?" "Well it depends. It might not be able to tell you what you have, but it can tell you that your 'toe bone is connected to the foot bone' 5 million times a second!"]

Imagine making the same argument for SQL, it'd be trivial to just point to a different library/db.

And so far we've only talked about complexity inherent in the technology, and not about the complex and hostile tooling (a.k.a. protege) or even the absolut unmaintainable rats nests that big ontologies devolve to.

Having a couple different competing standards would actually improve things quite a bit, because it would force them to remain simple enough that they can still somehow interoperate.

It's a bit like YAGNI. If you have two simple standards it's trivial to make them compatible by writing a tool that translates one to the other, or even speaks both. If you have one humongous one, it's nigh impossible to have two compatible implementations, because they will diverge in some minute thing. See rich hickeys talk "simplicity matters", for an in-depth explanation on the difference between simple (few parts with potentially high overall complexity through intertwinement and parts taking multiple roles), and decomplected (consisting of independent parts with low overall system complexity).

And regarding JSON Schema: I never advocated for JSON schema and the fact that you have to compare RDFs maturity to something that hasn't been released yet...

You would expect a standard that work began on 25 YEARS ago to be a bit more mature in it's implementations. If it hasn't reached that after all this time, we have to ask the question, why is that? And my guess is that implementors see the standards _and_ their transitive hull and go TL;DR, and even if they try, they get overwhelmed by the sheer amount of stuff.

Re: A Review of the Semantic Web Field

#32
post #11

We built a new semantic database first in university and then commercial open source (TerminusDB). We use the web ontology language (OWL) as a schema language, but made two important - practical - modifications: 1) we dispense with the open world interpretation; and 2) insist on the unique name assumption. This provides us with a rich modelling language which delivers constraints on the shapes in the graph. Additiona…

"Our feeling on interacting with the semantic web community is that innovation - especially when it conflicts with core ideology - is not welcome."

I wasn't a big fan of the "semantic web" community when it first came out, and the years have only deepened my disrespect, if not outright contempt. The entire argument was "Semantic web will do this and that and the other thing!"

"OK, how exactly will it accomplish this?"

"It would be really cool if it did! Think about what it would enable!"

"OK, fine, but how will this actually work!"

"Graph structures! RDF!"

"Yes, that's a data format. What about the algorithms? How are you going to solve the core problem, which is that nobody can agree on what ontology to apply to data at global scale, and there isn't even a hint of how to solve this problem?"

"So many questions. You must be a bad developer! It would be so cool if this worked, so it'll work!"

There has always been this vacuousness in the claims, where they've got a somewhat clear idea of where they want to go, but if you ever try to poke down even one layer deeper into how it's going to be solved, you get either A: insulted B1: claims that it's already solved just go use this solution (even though it is clearly not already solved since the semantic web promises are still promises and not manifested reality) B2: claims it's already solved and the semantic web is already huge (even though the only examples some using this can cite are trivial compared to the grand promises and the "semantic web" components borderline irrelevant, most frequently citing "those google boxes that pop up for sites in search results" just like this article does despite the fact they're wafer-thin compared to the Semantic Web promises and barely use any "Semantic Web" tech at all) or C: a simple reiteration of the top-level promises, almost as if the person making this response simply doesn't fundamentally grasp that the ideals need to manifest in real code and real data to work.

This article does nothing to dispel my beliefs about it. The second sentence says it all. For the rest, while just zooming in to the reality may be momentarily impressive, compared to the promises made it is nothing.

The whole thing was structured backwards anyhow. I'd analogize the "semantic web" effort to creating a programming language syntax definition, but failing to create the compiler, the runtime, the standard library, or the community. Sure, it's non-trivial forward progress, but it wasn't really the hard part. The real problem for semantic web and their community is the shared ontology; solve that and the rest would mostly fall into place. The problem is... that's an unsolvable problem. Unsurprisingly, a community and tech all centered around an unsolvable problem haven't been that productive.

A fun exercise (which I seriously recommend if you think this is solvable, let alone easy) is to just consider how to label a work with its author. Or its primary author and secondary authors... or the author, and the subsequent author of the second edition... or, what exactly is an authored work anyhow? And how exactly do we identify an author... consider two people with identical names/titles, for instance. If we have a "primary author" field, do we always have to declare a primary author? If it's optional, how often can you expect a non-expert bulk adding author information in to get it correct? (How would such a person necessarily even know how to pick the "primary author" out of four alphabetically-ordered citations on a paper?)

(I am aware of the fact there are various official solutions to these problems in various domains... the fact that there are various solutions is exactly my point. Even this simple issue is not agreed upon, context-dependent, it's AI-complete to translate between the various schema, and if you speak to an expert using any of them you could get an earful about their deficiencies.)

Re: A Review of the Semantic Web Field

#33
I do research in this field but I am a programmer by training before I entered this research field. I have talked to many academics and they agree that industry needs something simpler, more approachable and something that solves their problems in a more direct way, so it's definitely not an "academic exercise" for many researchers.

However, I failed to convince people that we need to implement the 2001 SciAm use case (https://www-sop.inria.fr/acacia/cours/essi2006/Scientific%20..., see the intro before the first section) using 2021 technologies (smartphones are here, assistants are here, shared calendars are easy, companies have APIs, the only thing missing is a proper glue using semantic web tech). This goes to the core thesis of this paper that semantic web is awesome as the set of ideas and approaches but the Semantic Web as the result of all this work may look underwhelming or irrelevant today. I like to point everyone who disagrees with me to the 1994 TimBL presentation at CERN (https://videos.cern.ch/record/2671957) where he talks about the early vision of semantic web (https://imgur.com/aS2dbf6 or around 05:00 in the video), which looks awfully like IoT (many years before the term even existed). We simply cannot fault someone who envisioned communication technologies for IoT in 1994 for getting the technology a bit wrong.

Today's technologies simply cannot handle the use-cases for which SemWeb was designed for properly:

1) The web is still not suitable for machines. Yes, we have IoT devices that use APIs but nobody will say it's truly M2M communication at its best. When APIs go down devices get bricked, there is no way to get those devices to talk to any other APIs. There is no way for two devices in a house to talk to each other unless they were explicitly programmed to do so.

2) We don't have common definitions for the simplest of terms. Schema.org made a progress but it's very limited because it serves search engine interest, not the IoT community. There is no reason something like XML NS or RDF NS should not be used across every microservice in a company. Using a key (we call them predicates, but not important here) "email:mbox" (defined in https://www.w3.org/2000/10/swap/ very long time ago) you can globally denote the value is an email.

3) Correctness of data and endpoint definition still matters. We threw away XML and WSDL but came back to develop JSON Schema and Swagger.

We are trying to get there. JSON Schema, Swagger etc. all make efforts in the direction of the problems SemWeb tried to address. One of the most "semantic" efforts I see done recently is GraphQL federation, which has been a semantic web dream for a long while: being able to get the information you need by querying more than one API. This only indicates the problems that semantic web tried to address are still viable.

If anyone has attempted an OSS reimplementation of the 2001 "Pete and Lucy" semantic web use case (ie as an Android app and a bunch of microservices), please point me in the right direction. Otherwise, if anyone is interested in doing it, I am all ears (https://gitter.im/linkeddata/chat is an active place for the LOD/EKG/SW discussion).

Re: A Review of the Semantic Web Field

#34
Even though I have been working off and with SW and linked data tech for twenty years, I share some of the skeptical sentiments in comments here.

I am keenly interested in fusion of knowledge representation with SW tech and deep learning. I wrote a short and effective NLP interface to DBPedia two weekends ago that you can experiment with on Google Colab https://colab.research.google.com/drive/1FX-0eizj2vayXsqfSB2... that leverages Hugging Face’s transformer model for question answering. You can quickly see example use in my blog https://markwatson.com/blog/2021-01-18-dbpedia-qa-transforme...

Re: A Review of the Semantic Web Field

#35
post #32
post #11

We built a new semantic database first in university and then commercial open source (TerminusDB). We use the web ontology language (OWL) as a schema language, but made two important - practical - modifications: 1) we dispense with the open world interpretation; and 2) insist on the unique name assumption. This provides us with a rich modelling language which delivers constraints on the shapes in the graph. Additiona…

"Our feeling on interacting with the semantic web community is that innovation - especially when it conflicts with core ideology - is not welcome." I wasn't a big fan of the "semantic web" community when it first came out, and the years have only deepened my disrespect, if not outright contempt. The entire argument was "Semantic web will do this and that and the other thing!" "OK, how exactly will it accomplish this?…

Yes. I had pretty much this conversation a while back with some non-technically minded people who had been convinced that by creating an ontology and set of "semantic business rules" - a lot of the writing of actual code could be automated away, leaving the business team to just create rules in a language almost like English and have the machine execute those English-like rules.

I had to explain that they were basically on track to re-implementing COBOL.

Re: A Review of the Semantic Web Field

#36

My 10,000 ft layperson's view, to which I invite corrections, is broadly: - The semantic web set off with extraordinarily ambitious goals, which were largely impractical - The entire field was trumped by Deep Learning, which takes as its premise that you can infer relationships from the exabytes of human rambling on the internet, rather than having to laboriously encode them explicitly - Deep Learning is not after al…

Deep Learning does not even operate in the same space as where most of Semantic Web is being used today, some examples:

- https://schema.org/

- https://www.wikidata.org/

- https://lod-cloud.net/

- http://www.ontobee.org/

- https://catalog.data.gov/dataset?res_format=RDF&_res_format_...

- https://ukparliament.github.io/ontologies/

- https://ckan.publishing.service.gov.uk/dataset?res_format=SP...

- https://ckan.publishing.service.gov.uk/dataset?res_format=RD...

- https://data.nasa.gov/ontologies/atmonto/index.html

- https://data.europa.eu/euodp/linked-data

Re: A Review of the Semantic Web Field

#37
post #17
post #14

Earlier quoted context omitted.

> CURIEs and the depending standards alone are well over 100 pages. The curie standard is 10 pages long, and those "dependent standards" includes things like RFC 3986 (Uniform Resource Identifiers (URI): Generic Syntax) and RFC 3987 (Internationalized Resource Identifiers (IRI)) - which are well established technologies that most people should be familiar with. And you really don't need to read all of the referenced…

Familiarity isn't nearly enough if you want to implement something. Talking about RDF is absolutely meaningless without talking about Serialisation (and that includes ...URGH.. XML serialisation), XML Schema data-types, localisations, skolemisation, and the ongoing blank-node war. The semantic web ecosystem is the prime example of "the devils in the detail". Of course you can explain to somebody who knows what a grap…

Hi,

thank you for the really cool post! I am trying to understand some key concepts here, so please forgive the simple questions:

> 16byte subject/entity | 16 byte predicate/attribute | 32 byte object/value

What would be a difference between subject and entity? Do you include a timestamp of your entries next to your trible?

> Having a fixed size binary representation makes this compatible with most existing databases (...)

Are you using a external look up table to identify the human language definition of the entry, and keep using the 2^128 possible entries for internal use?

> (...) if you want to upgrade your schema (...)

> We stole the context from jsonLD (...)

What were the reasons you did not use jsonLD as a base for your software?

Could you point perhaps point me to a case study of your system, or, if this is not possible, a similar case published in literature/www etc? I would love to learn more what you are doing (my contact is in the my profile).

Wish I could upvote you a couple of times. Thank you.

Re: A Review of the Semantic Web Field

#38
post #37
post #17

Earlier quoted context omitted.

Familiarity isn't nearly enough if you want to implement something. Talking about RDF is absolutely meaningless without talking about Serialisation (and that includes ...URGH.. XML serialisation), XML Schema data-types, localisations, skolemisation, and the ongoing blank-node war. The semantic web ecosystem is the prime example of "the devils in the detail". Of course you can explain to somebody who knows what a grap…

Hi, thank you for the really cool post! I am trying to understand some key concepts here, so please forgive the simple questions: > 16byte subject/entity | 16 byte predicate/attribute | 32 byte object/value What would be a difference between subject and entity? Do you include a timestamp of your entries next to your trible? > Having a fixed size binary representation makes this compatible with most existing databases…

Glad that you like it :D This actually pushes me a bit more into the direction of open-sourcing the whole thing, we kinda have it planned, but it's not a priority at the moment, because we use it ourselves quite happily :D.

Subject and Entity are the same thing, just different names for it. People with a Graph DB background will more commonly use [entity attribute value] for triples, while people from the Semantic Web community, commonly use [subject predicate object].

We don't use timestamps, but we just implemented something we call UFO-IDs (Unique, Forgettable, Ordered), where we store a 1 second resolution timer in the first 16 bit, which improves data locality and allows us to forget irrelevant tribles within a 18h window (which is pretty nice if you do e.g. robotics or virtual personal assistants), while at the same time still practicing the overflow case regularly (in comparison to UUIDv1, ULID, or Timeflakes), and not loosing too many bits of entropy (especially in cases where the system runs longer than 18h).

The 128bit is actually big enough though that you can just choose any random value, and be pretty darn certain that it's unique. (UUIDv4 works that way) 64 byte / 512bit not only fits into cache lines, it's also the smallest value, which is statistically "good enough". 128 bit random IDs (entity and attribute) are statistically unlikely enough to collide, and 256bit hashes (the value) are likewise good enough for the foreseeable future to avoid content collision.

And yeah well, the human language name, as well as all the documentation about the attribute is actually stored as tribles alongside the data. We use them for code generation for statically typed programming languages which allows us to hook into the languages type checker, to create documentation on the fly, and to power a small ontology editing environment (take that protege ;) ).

We kinda use it as a middleware, similar to ROS, so it has to fit into the same soft realtime, static typing, compile everything nich, while at the same time allowing for explorative programming in dynamic languages like Javascript. We use observableHQ notebooks to do all kinds of data-analysis, so naturally we want a nice workflow there.

jsonLD is heavily hooked into the RDF ecosystem. We actually started in the RDF space, but it became quickly apparent that the overall complexity was a show stopper.

Originally this was planned to bring the sub projects in a large EU research project closer together, and encourage collaboration. We found that every sub project wanted to be the Hub that connected all the other ones.

By having a 2.5kloc implementation we figured, everybody could "own" the codebase, and associate with it, make it so stupid and obvious that everybody feels like they came up with the idea themselves. The good old inverse Conway manoeuvre.

jsonLD is also very static, in the ways that it allows you to reinterpret data, RDF in =churn=> JSON out, and we wanted to be able to do so dynamically, so that when you refactor code to use new attribute variants (e.g. with different deserialisations) you can do so gradually. Also dynamic is a lot faster.

The tribles instead of triples idea came when we've noticed that basically every triple store implementation does a preprocessing step where CURI are converted to u64 / 8byte integer to be stored in the indices.

We just went: "Well, we could either put 24 byte in the index and still have to do 3 additional lookups. Or we could put 64 byte (2.5x) in there and get range queries, sorting, and no additional lookups, with essentially the same write and read characteristics.[Because our Adaptive Radix Tree index compresses all the random bits.]" 64 bit words are already pretty darn big...

Currently there is nothing published (except for it being vaguely mentioned in some linguistics papers), and no studies done. They are planned though, but as this isn't our source of income it's lowish priority (much to my dismay :D).

Keep an eye on tribles.space tho ;)

Edit: Ah well, why wait, might as well start building a community :D

https://discord.gg/KP5HBYfqUf

Re: A Review of the Semantic Web Field

#39
post #11

We built a new semantic database first in university and then commercial open source (TerminusDB). We use the web ontology language (OWL) as a schema language, but made two important - practical - modifications: 1) we dispense with the open world interpretation; and 2) insist on the unique name assumption. This provides us with a rich modelling language which delivers constraints on the shapes in the graph. Additiona…

> "dispense with the open world interpretation“

That can mean anything from "we have some conventional (e.g. plain old RDBMS) CWA systems but describe their schemas in an OWA DL to ease integration across independent systems" (in particular this means no CWA implications outside those built into the conventional systems with or without a semweb layer on top) to "we do a big bucket of RDF and run it all through a set of rules formulated in OWL syntax but applied in an entirely different way" (CWA everywhere). The former would be semweb as intended, or at least a subset thereof, but the latter could easily end up somewhere between simple brand abuse and almost comical cargo culting.

Well, at least that's how I feel as someone who never had to face the realities of the vast unmapped territories between plain old database applications and fascinating yet entirely impractical academic mind games of DL (old school symbolic AI ivory tower that suddenly happened to find itself in the center of the hottest w3c spec right before w3c specs kind of stopped being a thing, with WHATWG usurping html and Crockford almost accidentally killing XML)

(also, when has "assumption" turned into "interpretation"? Guess I missed a lot)

Re: A Review of the Semantic Web Field

#40
post #27
post #11

We built a new semantic database first in university and then commercial open source (TerminusDB). We use the web ontology language (OWL) as a schema language, but made two important - practical - modifications: 1) we dispense with the open world interpretation; and 2) insist on the unique name assumption. This provides us with a rich modelling language which delivers constraints on the shapes in the graph. Additiona…

> [...] but we must extract the good and remove ideological barriers to participation. Could you point to some resources that explain the tradeoff between the practical solutions and concepts and the ideologic cruft for an outsider?

Not the commenter, but I hope to add something to the discussion. Generally, expanding on the current state of the art is paramount in academia. In this case, I guess that defaulting on closed-world and unique names is frowned upon because academic people "know" that SemWeb concepts would be "easy" to implement under such conditions (for some interpretation of "know" and "easy"). A university lab would be reluctant to invest on such a project, because it would likely result in less publications than, say, a bleeding-edge POC.

Of course, practical solutions based on well-understood assumptions are exactly what a commercial operation needs, so it's no wonder that TerminusDB chose that path. They might not publish a ton of papers, but they have something that works and could be used in production.

Post reply on HN