Kai von Luck

69 papers B 4C 5Misc 6Journal 10Unranked 38
YearRankTypeTitle / Venue / Authors
2024 conf
PETRA
Frederic Voigt, Kai von Luck, Peer Stelldinger
2024 conf
CIFEr
Frederic Voigt, José M. Alcaraz Calero, Keshav P. Dahal, Qi Wang, Kai von Luck, Peer Stelldinger
2023 conf
CHI Extended Abstracts
Jan Schwarzer, Julian Fietkau, Laurenz Fuchs, Susanne Draheim, Kai von Luck, Michael Koch
2023 conf
MuC (Workshopband)
Michael Koch, Julian Fietkau, Susanne Draheim, Jan Schwarzer, Kai von Luck
2023 B conf
TEI
Jessica Broscheit, Susanne Draheim, Kai von Luck, Qi Wang
2023 conf
PETRA
André Jeworutzki, Jan Schwarzer, Kai von Luck, Peer Stelldinger, Susanne Draheim, Qi Wang
2023 J jnl
Int. J. Hum. Comput. Interact.
Jan Schwarzer, Susanne Draheim, Kai von Luck
2022 J jnl
Int. J. Hum. Comput. Interact.
Jan Schwarzer, Susanne Draheim, Kai von Luck, Qi Wang, Christos Grecos
2021 conf
PETRA
André Jeworutzki, Jan Schwarzer, Kai von Luck, Susanne Draheim, Qi Wang
2021 C conf
iLRN
Uli Meyer, Jonathan Becker, Thomas Mueller, André Jeworutzki, Susanne Draheim, Kai von Luck
2021 conf
AHs
Jessica Broscheit, Susanne Draheim, Kai von Luck, Qi Wang
2021 B conf
TEI
Jessica Broscheit, Qi Wang, Susanne Draheim, Kai von Luck
2019 conf
VS-GAMES
Uli Meyer, Susanne Draheim, Kai von Luck
2019 B conf
TEI
Jessica Broscheit, Susanne Draheim, Kai von Luck
2019 conf
ECSCW Exploratory Papers, Demos and Posters
Jan Schwarzer, Kai von Luck, Susanne Draheim, Michael Koch
2019 conf
MuC (Workshopband)
Michael Koch, Buket Camurtay, Kai von Luck, Jan Schwarzer, Susanne Draheim
2018 conf
PETRA
Arne Bernin, Larissa Müller, Sobin Ghose, Christos Grecos, Qi Wang, Ralf Jettke, Kai von Luck, Florian Vogt
2018 conf
SSCI
Andreas Kamenz, Victoria Bibaeva, Arne Bernin, Sobin Ghose, Kai von Luck, Florian Vogt, Larissa Müller
2018 conf
Girls@IDC
Jessica Broscheit, André Jeworutzki, Susanne Draheim, Kai von Luck
2018 conf
ECSCW Exploratory Papers
Michael Koch, Kai von Luck, Jan Schwarzer, Susanne Draheim
2017 conf
SSCI
Karolina Bernat, Sobin Ghose, Kai von Luck, Florian Vogt
2017 conf
SSCI
Larissa Müller, Arne Bernin, Kai von Luck, Andreas Kamenz, Sobin Ghose, Qi Wang, Christos Grecos, Florian Vogt
2017 B conf
WiMob
Tobias Eichler, Susanne Draheim, Christos Grecos, Qi Wang, Kai von Luck
2017 conf
PETRA
Arne Bernin, Larissa Müller, Sobin Ghose, Kai von Luck, Christos Grecos, Qi Wang, Florian Vogt
2016 Misc conf
NordiCHI
Jan Schwarzer, Susanne Draheim, Kai von Luck, Qi Wang, Pablo Casaseca-de-la-Higuera, Christos Grecos
2016 C conf
ICEC
Lutz Behnke, Sven Allers, Qi Wang, Christos Grecos, Kai von Luck
2016 conf
SSCI
Larissa Müller, Arne Bernin, Sobin Ghose, Wojtek Gozdzielewski, Qi Wang, Christos Grecos, Kai von Luck, Florian Vogt
2015 conf
MMVE@MMSys
Lutz Behnke, Qi Wang, Christos Grecos, Kai von Luck
2015 Misc conf
MuC
Jan Schwarzer, Susanne Draheim, Kai von Luck
2014 conf
MMVE@MMSys
Lutz Behnke, Christos Grecos, Kai von Luck
2014 C conf
ICISP
Henrik Brauer, Christos Grecos, Kai von Luck
2013 conf
GeNeMe
Jan Schwarzer, Lorenz Barnkow, Kai von Luck
2013 Misc conf
MuC
Jan Schwarzer, Lorenz Barnkow, Peter Kastner, Kai von Luck
2013 conf
MuC (Workshopband)
Lorenz Barnkow, Jan Schwarzer, Kai von Luck
2012 conf
GeNeMe
Lorenz Barnkow, Jan Schwarzer, Kai von Luck
2012 Misc conf
MuC
Lorenz Barnkow, Kai von Luck
2012 C conf
ICEC
Lorenz Barnkow, Kai von Luck
2011 J jnl
Künstliche Intell.
Kai von Luck
2009 Misc conf
MuC
Philipp Roßberger, Kai von Luck
2003 ch.
Handbuch der Künstlichen Intelligenz
Bernd Owsnicki-Klewe, Kai von Luck, Bernhard Nebel
1997 J jnl
Künstliche Intell.
Michael Böhm, Gunter Klemke, Kai von Luck, Bernd Owsnicki-Klewe, Guido Pfeiffer
1994 ed.
IS/KI
Kai von Luck, Heinz Marburger
1993 J jnl
Künstliche Intell.
Kai von Luck, Jürgen Pietsch
1993 Misc conf
KI
Georg Lausen, Kai von Luck
1992 ch.
Ontologie und Axiomatik der Wissensbasis von LILOG
Kai von Luck
1991 conf
Text Understanding in LILOG
Kai von Luck, Thomas Pirlein
1991 J jnl
Künstliche Intell.
Kai von Luck
1991 J jnl
International Workshop on Terminological Logics - Proceedings
IWBS Report
Bernhard Nebel, Christof Peltason, Kai von Luck
1991 ed.
Description Logics
Bernhard Nebel, Kai von Luck, Christof Peltason
1991 conf
Text Understanding in LILOG
Gudrun Klose, Kai von Luck
1990 J jnl
Die Konzeption des EXCEPT-Systems: Ein Überblick
IWBS Report
Martin Hübner, Kai von Luck, Ulrike Weiland
1990 conf
Informatik für den Umweltschutz
Martin Hübner, Kai von Luck, Ulrike Weiland
1990 J jnl
KL-ONE: Eine Einführung
IWBS Report
Kai von Luck
1990 conf
Terminology and Knowledge Engineering (Vol. 1)
Gudrun Klose, Kai von Luck
1989 conf
ÖGAI
Kai von Luck, Ralf Meyer, Thomas Pirlein
1989 J jnl
Knowledge Representation in LILOG
IWBS Report
Udo Pletat, Kai von Luck
1989 conf
Sorts and Types in Artificial Intelligence
Udo Pletat, Kai von Luck
1989 ed.
KIFS
Kai von Luck
1988 C conf
ISMIS
Bernhard Nebel, Kai von Luck
1987 conf
GWAI
Bernhard Nebel, Kai von Luck
1987 conf
KIFS
Kai von Luck, Bernd Owsnicki-Klewe
1987 conf
Wissensrepräsentation in Expertensystemen
Kai von Luck, Bernhard Nebel, Hans-Jochen Schneider
1986 conf
GWAI
Kai von Luck
1985
Kai von Luck
1985 conf
GWAI
Kai von Luck, Bernhard Nebel, Christof Peltason, Albrecht Schmiedel
1984 conf
GWAI
Kai von Luck, Bernd Owsnicki-Klewe
1984 conf
GWAI
Werner Emde, Kai von Luck, Albrecht Schmiedel
1982 conf
GWAI
Kai von Luck, Bernd Owsnicki-Klewe
1981 conf
GWAI
Kai von Luck, Bernd Owsnicki-Klewe
redb/extractors/decompiler/bninja/similarity/minhashcustom.py
← Index redb/extractors/decompiler/bninja/similarity/minhashcustom.py python
import numpy as np
import mmh3

class MinHashCustom:
    """
    DTO for an actual MinHash
    <minhash>: a binary sequence of packed int8/32 values
    <minhash_int>: the equivalent representation of <minhash> but as list of int8/32
    """

    _HASH_MAX = 0xFFFFFFFF
    _MINHASH_BITS = 32

    def getSignatureEntrySize(self):
        return 1 if self.MINHASH_BITS <= 8 else 4

    def __init__(self, function_addr=None, minhash_bytes=None, minhash_signature=None, minhash_bits=32):
        self.minhash = b""
        self.minhash_int = []
        if minhash_bits:
            self._MINHASH_BITS = minhash_bits
        if minhash_bytes and minhash_signature:
            raise ValueError("Can use only one keyword argument")
        if minhash_bytes:
            if self._MINHASH_BITS <= 8:
                minhash_signature = np.frombuffer(minhash_bytes, dtype=np.uint8)
            else:
                minhash_signature = np.frombuffer(minhash_bytes, dtype=np.uint32)
            self.setMinHash(minhash_signature)
        elif minhash_signature:
            self.setMinHash(minhash_signature)

        self.shingler_composition = {}
        self.function_addr = function_addr

    def hasMinHash(self):
        return len(self.minhash) > 0

    def getMinHash(self):
        return self.minhash

    def getMinHashInt(self):
        return self.minhash_int

    def setMinHash(self, minhash_signature):
        self.minhash_int = [i % 2 ** self._MINHASH_BITS for i in minhash_signature]
        if self._MINHASH_BITS <= 8:
            self.minhash = np.array(self.minhash_int, dtype=np.uint8).tobytes()
        else:
            self.minhash = np.array(self.minhash_int, dtype=np.uint32).tobytes()

    def getComposition(self):
        return self.shingler_composition

    def scoreAgainst(self, other):
        return self.calculateMinHashScore(self.minhash, other.minhash, minhash_bits=self._MINHASH_BITS)

    @staticmethod
    def getHashMax():
        return MinHashCustom._HASH_MAX

    @staticmethod
    def hashData(data, seed) -> int:
        if isinstance(data, (str, bytes, bytearray)):
            return mmh3.hash(data, seed) & MinHashCustom._HASH_MAX
        elif isinstance(data, (list, tuple)):
            to_hash = "|".join(str(elem) for elem in data)
            return mmh3.hash(to_hash, seed) & MinHashCustom._HASH_MAX
        else:
            raise NotImplementedError(
                f"Type not supported for hashData: {type(data).__name__}"
            )

    @staticmethod
    def calculateMinHashScore(first, second, minhash_bits=32):
        if minhash_bits <= 8:
            first_np = np.frombuffer(first, dtype=np.uint8)
            second_np = np.frombuffer(second, dtype=np.uint8)
        else:
            first_np = np.frombuffer(first, dtype=np.uint32)
            second_np = np.frombuffer(second, dtype=np.uint32)
        return 100.0 * sum(first_np == second_np) / len(first_np)

    @staticmethod
    def calculateMinHashIntScore(first, second):
        score = 0
        num_hashes = len(first)
        if num_hashes:
            for index, part in enumerate(first):
                score += 1 if part == second[index] else 0
            return 100.0 * score / num_hashes
        return 0.0

    @property
    def MINHASH_BITS(self):
        return self._MINHASH_BITS